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

Kevin Sangeelee kevin at susa.net
Mon Sep 21 10:54:32 BST 2020


 I get a weird sense of catharsis from stuff written in C - thanks for this.

I'm struck by the fact that URL parsing accounts for about half the code -
a stark reminder both of the effort required to handle formal
specifications properly, and of the value of the GPL.

Good stuff!

On Mon, 21 Sep 2020 at 03:30, Drew DeVault <sir at cmpwn.com> wrote:

> 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!
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.orbitalfox.eu/archives/gemini/attachments/20200921/1d8dca04/attachment.htm>


More information about the Gemini mailing list