Kabong

Kabong is an utterly minimal Gemini server, and very much a work in progress. It is only a single file, and is intended to stay that way.

The name is from the boilerplate El Kabong from the Gemini program. That was used for testing paraglider landing, and I use my server to test something that likely will not be used either.

Rationale

The idea was writing a server where TLS is kept out of the server implementation. TLS is assumed to be handled by e.g. stunnel or another appropriate proxy, which can connect to the UNIX domain socket where Kabong listens. That way testing and feature development can be done on a running server just using simplistic tooling. By binding to a UNIX domain socket, testing can be protected by the file system and potentially unsafe features can easily be explored in a relatively safe manner.

With that out the way, I also might as well add hacking Gemini is fun, and I wanted to claim this name for a server.

Implementation notes

Kabong is written on top of Python's asyncio module. I'm not a big fan of it, but it certainly makes development quick. Although it as usual for Python these days makes getting something to run at all really easy, but getting it right somewhat cumbersome. If you're thinking of the meme “Old man shouting at clouds” I do understand what you're getting at.

Kabong source code

Download.

2020-08-19, Steinar Knutsen