Writing a Gemini server in C

A few days ago, my brother introduced me to the internet protocol Gemini. It's basically a very lightweight alternative to the web, and while I'm not sure how much of a following it will ever have, I like its fundamental concepts. Particularly, I like that implementing a Gemini server from scratch is actually manageable for a single person. So that's what I started doing.

You can find my server implementation in Gitlab. I have used the C programming language and called my program Soyuz. Currently, the entire source code resides in a single file. Soyuz is suitable for statically serving files to the client. The biggest issue currently is its complete lack of threading.

It has been quite a while since my last recreational programming project. Even if Gemini never finds wide-spread adoption, I'm thankful for its existence if only for this nice day of programming.