☿️ gemini — esthetics

Petite Abeille petite.abeille at gmail.com
Tue Mar 2 13:35:09 GMT 2021

☿️ Gemini is a ± strict subset of Gemini proper.

In other words, a compliant Gemini agent should be able to handle all of ☿️ Gemini — while a ☿️ Gemini agent can only handle a small subset of the whole of Gemini, gracefully degrading along the way.

☿️ Gemini attempts to follow Antoine de Saint-Exupéry's dictum: design is achieved, not when there is nothing more to add, but when there is nothing left to take away.

The approach was outlined in Solderpunk's seminal "The Mercury protocol" gemlog, dated 2020-05-26. †

The most apparent difference between ☿️ Gemini and Gemini proper relates to the connection mechanism: 

• ☿️ Gemini run over plain TCP by default
• Gemini proper mandates TLS in all circumstances

The port numbers are therefore different: 

• 1961 for ☿️ Gemini, over plain TCP
• 1965 for Gemini proper, over TLS

Aside from that, the differences are pretty minor:

• ☿️ Gemini sports only 3 status codes (20 SUCCESS, 30 REDIRECT, and 40 ERROR)
• Gemini proper sports ~18 status codes

Another difference of note is related to IRIs/URIs:

• ☿️ Gemini mandates absolute, normalized IRIs everywhere
• Gemini proper allows relative URIs, in some cases

In regards to text/gemini, ☿️ Gemini recognize only two line types: text, and link. 
Furthermore, the ☿️ Gemini links are always absolute, and normalized.

Gemini proper sports a few more line types (preformatting toggle lines, preformatted text lines, heading lines, unordered list items, and quote lines).
The regular Gemini links can be relative, under some circumstances.

Very similar altogether, connection mechanism aside (plain TCP vs TLS).

Other differences are more philosophical in nature:

• ☿️ Gemini advocates a more flexible connection model, using multiaddr + DNS-SD 
• Gemini proper mandates TLS, in all cases — all the way down to protocol specific status codes (the 6x series)

Finally, there is the open vs close nature of the respective protocols:

• ☿️ Gemini advocates a cooperative extension model (through capabilities negotiation)
• Gemini proper is firmly locked down and frown at any hint of possible extensibility — the forever protocol

All in all, quite similar in practice, while quite different in outlook. 


† https://portal.mozz.us/gemini/gemini.circumlunar.space/users/solderpunk/gemlog/the-mercury-protocol.gmi?raw=1

Archived at: https://web.archive.org/web/20210302133216/https://portal.mozz.us/gemini/gemini.circumlunar.space/users/solderpunk/gemlog/the-mercury-protocol.gmi?raw=1

More information about the Gemini mailing list