💾 Archived View for rawtext.club › ~sloum › geminilist › 002747.gmi captured on 2020-10-31 at 14:45:06. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2020-09-24)
-=-=-=-=-=-=-
Drew DeVault sir at cmpwn.com
Mon Sep 21 03:12:26 BST 2020
- - - - - - - - - - - - - - - - - - -
Hiya! I felt that the Gemini space has a lot of cool browers, but wasmissing the basic works-everywhere client with few-to-no dependencies.
gmni fills that role:
https://sr.ht/~sircmpwn/gmni
Here's a recording which shows off some of its features:
https://asciinema.org/a/Y7viodM01e0AXYyf40CwSLAVA
Two tools are provided: gmni, a curl-like utility which executes Geminirequests and writes the response to stdout, and gmnlm, a line-modeinteractive browser. The latter is demonstrated in the recording above.
The whole thing clocks in at approximately 3,000 lines of C11. It'llgrow a little bit with TOFU and client-side certificate support, butotherwise it's pretty close to done. The only dependencies are aPOSIX-like system and OpenSSL.
The Gemini protocol implementation is pretty concise andstraightforward:
https://git.sr.ht/~sircmpwn/gmni/tree/master/include/gmni.hhttps://git.sr.ht/~sircmpwn/gmni/tree/master/src/client.chttps://git.sr.ht/~sircmpwn/gmni/tree/master/src/parser.c
If there's any demand for it, I'll package these up into a library youcan link to. I also plan on writing a Gemini server in C with a similardesign approach.
Enjoy!