Write README.

This commit is contained in:
Solderpunk 2019-06-24 20:12:48 +03:00
parent 9d61d4a4aa
commit 9d8ec49e42
1 changed files with 38 additions and 1 deletions

View File

@ -1,3 +1,40 @@
# gemini-demo-1
Minimal but usable interactive Gemini client in < 100 LOC of Python 3
## Rationale
One of the original design criteria for the Gemini protocol was that
"a basic but usable (not ultra-spartan) client should fit comfortably
within 50 or so lines of code in a modern high-level language.
Certainly not more than 100". This client was written to gauge how
close to (or far from!) that goal the initial rough specification is.
## Capabilities
This crude but functional client:
* Has a minimal interactive interface for "Gemini maps"
* Will print plain text in any encoding if it is properly declared in
the server's response header
* Will handle binary files using programs specified in `/etc/mailcap`
(so you can, e.g. view images)
* Will follow redirects
* Will report errors
* Does NOT DO ANY validation of TLS certificates
It's a *snug* fit in 100 lines, but it's possible. A 50 LOC client
would need to be much simpler.
## Usage
Run the script and you'll get a prompt. Type a Gemini URL (the scheme
is implied, so simply entering e.g. `gemini.conman.org` will work) to
visit a Gemini location.
If a Gemini menu is visited, you'll see numeric indices for links, ala
VF-1 or AV-98. Type a number to visit that link.
There is very crude history: you can type `b` to go "back".
Type `q` to quit.