This is running using version .Net 7 was was developed on Jetbrains Rider.
- Opening a TCP connection to the host at port 1965
- Request gemini url and read the response.
My experience in researching and coding this lightweight gemini browser made me better understand and appreciate the simplicity of the web. In lecture we explored how content is served through Gofer and Gemini and how it strips the complexity and the protocol provides the bare essential with security at its top priority and was not able to fully visualize and understand what that meant until I saw it for myself. Creating my own request and response allows me to see what exactly I need without private companies to give me permission or track my activity. By creating my own client gives me confidence and power to control my own data. I couldn't agree more with the author that โa basic but usable (not ultra-spartan) client should fit comfortably within 50 or so lines of code in a modern high-level language. Certainly not more than 100. โ My goal was to keep it within 100 lines of code to see if it was possible; however my expectations were surpassed on how simple this protocol was to fully set up once I had accumulated the technical research of the protocol and preferred language specifications. I decided to use Microsoft C# due to vast documentation of the TCP client and my experience working with Azure and integrations with the C# language made it a perfect fit for this project. Keeping with a simplistic model I moved away from separating it in different classes and focused on the key functions that can provide the requested response on the console. The SSL verification was something I was not expecting to be the most challenging part however upon further research a comparison on the chain was sufficient to validate the certificate. I hope to continue working on this client and apply a UI in future iterations. I see myself looking further into exploring the gemini protocol for future projects as its simplicity has definitely caught my attention and engineering curiosity.