Announcing gmni, a line-mode gemini browser and curl-esque utility program

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 was
missing 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 Gemini
requests and writes the response to stdout, and gmnlm, a line-mode
interactive browser. The latter is demonstrated in the recording above.

The whole thing clocks in at approximately 3,000 lines of C11. It'll
grow a little bit with TOFU and client-side certificate support, but
otherwise it's pretty close to done. The only dependencies are a
POSIX-like system and OpenSSL.

The Gemini protocol implementation is pretty concise and
straightforward:

https://git.sr.ht/~sircmpwn/gmni/tree/master/include/gmni.h
https://git.sr.ht/~sircmpwn/gmni/tree/master/src/client.c
https://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 you
can link to. I also plan on writing a Gemini server in C with a similar
design approach.

Enjoy!


More information about the Gemini mailing list