I spent the day (off and on) working on updating my Mercury Protocol implemention, in the Go programming-language (golang)

(The Mercury Protocol is the Gemini Protocol without the TLS.)

I wrote it back in 2021. The Go programming-language has changed since then. I updated it accordingly, and did a number of to-do items I planned to do but never got around to.

#GeminiProtocol #golang #MercuryProtocol #SmallNet #SmallWeb #SmolNet #SmolWeb

@reiver What's the goal of removing TLS? Won't that allow e.g. the government or your ISP or really anyone in the network path to rewrite source material without you being able to check?

@pojntfx

Based on my memory of the events....

Some of the principles that led to the creation of the Gemini Protocol seemed to be in conflict.

Yes, there was the pro-privacy principle.

The TLS requirement with Gemini existed because of that. Although there are alternatives to TLS.

But, there was also a principle of making implementing a client or a server a weekend project for a programmer of say 3 years experience.

Some felt TLS made Gemini too complex to satisfy that principle.

...

@reiver Hmmm, I see! I guess it depends on how complex one finds TLS, in e.g. Go that's like 10 lines of code from the stdlib, but if you don't have a powerful stdlib like that then yeah that's going to be really annoying

@pojntfx

I agree that if you are an experienced programmer nowadays, then TLS is straightforward for many if not most.

But, a principle was making it so someone who is a very junior programmer could do it, too.
And even people that do a bit of programming as a hobby. (I.e., someone who not only isn't aware that TLS exists, but doesn't understand WHY it exists, etc.)