💾 Archived View for soviet.circumlunar.space › julianrota › software.gmi captured on 2022-06-11 at 21:22:07. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-12-03)

-=-=-=-=-=-=-

Gemini Software Evaluations

One of the things about the Gemini world that I've found rather disappointing is that the list of available software has very little information about the quality level of it. I'd like to put a little bit of effort towards addressing that by providing a list of the Gemini tools that I have personally tried along with a brief evaluation of the features they support and the date it was written at.

Molly Brown

Evaluated 2020/12/24

https://tildegit.org/solderpunk/molly-brown

This is a server for the Gemini protocol written in Go. It seems to be functional, builds on all platforms I tried it on, and is pretty full-featured. It does have support for redirects and dynamic content. It is important to remember that it is meant to be a standalone server though, and doesn't support adding your custom functionality directly to it. It does support running external code via CGI and SCGI for dynamic content.

There are a few concerns though. It seems that Golang processes can't change their UID reliably, so the whole process and any child CGI processes it forks will all have the same UID, and this UID must be able to read the TLS private keys and write to the logs. If you want to run it as other than root with, say, LetsEncrypt certificates, then you will have to put together a mechanism for the certs it needs to be copied somewhere with adjusted permissions so that the process can access it.

I haven't tested this, but it seems that client cert supports providing hard-coded lists in the config file of paths to be considered restricted and client cert fingerprints that are allowed to access them. It also seems to support passing the cert info to CGI scripts. This seems to allow for setting up much more sophisticated authenticated behavior.

Lagrange

Evaluated 2020/12/26

gemini://skyjake.fi/lagrange/

This is a GUI desktop client for Gemini, written in C. It is available with slick installation options for Windows, OS X, and can be built on Linux. It seems to have best-in-class features as far as GUI Gemini clients go. Very nice looking rendering, multiple tabs, bookmarking, and management of client certs all work nicely.

It appears to have had consistent development for the last 6 months or so by the primary developer, with a few extra contributions by others.

Twin Peaks

Evaluated 2020/12/26

https://github.com/InvisibleUp/twinpeaks

This is a GUI Desktop client for Gemini, written in C# for WinForms. Naturally given that, it is Windows only. It's usable, but pretty bare bones. The page view is pretty sparse, and there aren't any tabs or bookmarks, and no support for client certs.

It appears to have been built by a single developer in mid-late May of this year, and hasn't been updated since.

AV98

Evaluated 2020/12/26

https://tildegit.org/solderpunk/AV-98

This is a CLI client for Gemini only, written in Python. It is advertised as an experimental client often used to test protocol features. I am pretty new to CLI clients, so it's hard to evaluate these well. It does seem to support client cert management and server cert validation.

Bombadillo

Evaluated 2020/12/26

https://bombadillo.colorfield.space/

This is a CLI client for Gemini, Gopher, and Finger. It is written in Go. It does appear to have support for bookmarks, but does not currently support client certificates.