~soapdog/fafi-browser

659516212d3fdf06b79ad767ec662e3c5c311796 — Andre Alves Garzia 2 years ago c976a91
Better readme.
1 files changed, 21 insertions(+), 3 deletions(-)

M README.md
M README.md => README.md +21 -3
@@ 2,11 2,29 @@

![Fafi browser running](fafi.gif)

Fafi is a Gemini browser written in [Racket](https://racket-lang.org). It is early days for this code base and there is much work to be done. At the moment the happy path for loading `text/gemini` and `text/plain` is working but I still need to implement the handling of the other status codes and mime types. This begun as just an experiment to calm me during my free hours, now I want to make it into a real gemini browser.
Fafi is a Small Internet browser written in [Racket](https://racket-lang.org). 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.

## What is gemini protocol?
## Protocols supported

It 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](https://proxy.vulpes.one/gemini/gemini.circumlunar.space/)
### Gemini Protocol

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](https://proxy.vulpes.one/gemini/gemini.circumlunar.space/)

### Text Protocol

[Text protocol](https://textprotocol.org) 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.

## Renderers

Fafi can render the following mime types:

* `text/gemini` --> uses the [Gemini Renderer](renderers/gemini-renderer.rkt).
* `text/plain` --> uses either the [Gemini Renderer](renderers/gemini-renderer.rkt) or the [Markdown renderer](renderers/markdown-renderer.rkt) depending on the URL schema.
* `text/markdown` --> uses the [Markdown Renderer](renderers/markdown-renderer.rkt).
* `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 renderer](renderers/feed-renderer.rkt)
* `application/atom+xml` --> uses the [Feed renderer](renderers/feed-renderer.rkt)
* `application/xml` --> uses the [Feed renderer](renderers/feed-renderer.rkt)

# Running
On your terminal: