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.

...

@pojntfx

One of the ways the creator of the Gemini Protocol reacted to this criticism is with a thought experiment — the Mercury Protocol.

I.e., Mercury = Gemini - TLS.

...

@pojntfx

I got the sense that the creator of Gemini Protocol and Mercury Protocol never intended anyone to implement or use the Mercury Protocol.

But, me being me — I noticed it mentioned on the (now gone) Gemini Protocol mailing list, and — went ahead and implemented it.

...

@pojntfx

The thing is, implementing the Mercury Protocol is actually useful for the Gemini Protocol if you want the TLS certificate to sit on another computer than the Gemini Server.

Which is more common when you get to some of the more scalable architectures.

.