💾 Archived View for kenogo.org › blog › 20221128.gmi captured on 2024-08-31 at 11:34:34. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
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.
I plan to refactor Soyuz into a literate program and add it to the corresponding section of my homepage. I tried writing it as a literate program to begin with, but I found out that this approach does not work well for me when I have little experience with the libraries I use.
For getting to know a library, I need a more explorative coding style. However, I think the program in its current state could very well be converted into a literate program and then maintained as such. So that's the plan.
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.