adding a suffix to web links in gemini-renderer%
fixed link line bug, added web proxy
Bug: output was not UTF-8
Fafi is a Small Internet browser written in Racket. It is early days for this code base and there is much work to be done. At the moment it is a bit less than an MVP, don't get me wrong, it is viable it is just less than the minimal set of features needed. This begun as just an experiment to calm me during my free hours, now I want to make it into a real small internet browser.
Gemini is a new protocol that is simple to implement and focused on privacy and low-resource usage. It is somewhere between gopher and the web. You can learn more about it in gemini.circumlunar.space — this is a proxy link
Text protocol is a bit odd. It looks like Mercury protocol to me, but I'm not sure. Anyway, Fafi can load text://
links. It reuses the Gemini renderer to display the text/plain
content from text://
URLs since Gemtext appears to be a superset of that format.
Fafi can render the following mime types:
text/gemini
--> uses the Gemini Renderer.text/plain
--> uses either the Gemini Renderer or the Markdown renderer depending on the URL schema.text/markdown
--> uses the Markdown Renderer.image/*
--> for a limitted set of *
, basically anything the Racket image class can render (safe for JPEG and PNG at least).application/rss+xml
--> uses the Feed rendererapplication/atom+xml
--> uses the Feed rendererapplication/xml
--> uses the Feed rendererOn your terminal:
Install the needed dependencies with:
$ raco pkg install
fafi needs the following packages:
You can continue without the step above if you already have them installed.
$ racket main.rkt
If you want to open an specific capsule:
$ racket main.rkt gemini://port1965.eu
Or run main.rkt
on DrRacket.
If you want a standalone version of Fafi browser you can build it with:
$ racket build.rkt
That will create a dist/
folder and place a distributable version of Fafi inside it. It will also create a single packaged file at the repository root folder that you can distribute to your friends. This file is either a .dmg
on macOS, a .zip
in Windows, or a .tar.gz
in UNIX-like OS.
Be aware that Fafi uses a single queue for history management. This means that all the tabs are a part of the same queue regardless if you navigated to that capsule as a new tab or in the same tab. This is different than major web browsers which usually use a per-tab history queue. Fafi approach is simpler but it is different than what you are probably used to. The history is erased when the app quits.
To view your history queue select the View → History menu.
https://todo.sr.ht/~soapdog/racket-gemini
Check CHANGELOG.md.
If you want you can buy me a coffee at ko-fi. You contribution helps me write books and software focused on programming, decentralization, and the small internet.
gemini-view%
, gemini-renderer%
, and markdown-renderer%
.@gaQw6z30GpfsW9k8V5ED4pHrg8zmrqku24zTSAINhRg=.ed25519
MIT