💾 Archived View for rawtext.club › ~sloum › geminilist › 005737.gmi captured on 2023-11-14 at 09:53:42. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

<-- back to the mailing list

[spec] mercury highlights ☿️

Petite Abeille petite.abeille at gmail.com

Sun Feb 28 15:40:01 GMT 2021

- - - - - - - - - - - - - - - - - - - 

BACKGROUNDBack in mid-2020, Solderpunk outlined the draft of a minimal subset of Gemini, named Mercury:

https://portal.mozz.us/gemini/gemini.circumlunar.space/users/solderpunk/gemlog/the-mercury-protocol.gmi <https://portal.mozz.us/gemini/gemini.circumlunar.space/users/solderpunk/gemlog/the-mercury-protocol.gmi>

That subset was always good enough for my needs, and that's what I have been using since — instead of Gemini proper.

What follows is my implementation highlights of Mercury — for the record.

SERVICE DISCOVERYmercury:// IRIs SHOULD be resolved through DNS service discovery:

dig +short TXT _mercury._tcp.host.xyz.multiaddr=/dns/host.xyz/tcp/1958/tls/sni/host.xyz

multiaddr †User-agents MUST support tcp.User-agents MAY support tls.

Default multiaddr /dns4/host.xyz/tcp/1958

REQUEST 4,096 bytes UTF-8 IRI linemercury://host.xyz/

RESPONSE 4,096 bytes UTF-8 status line 20 text/mercury;charset=utf-8;Hello Mercury! ☿️

=

mercury://host.xyz/license CC0-1.0 <end of connection>

STATUS2 digits code, 4,096 bytes UTF-8

2x (SUCCESS) 4,096 bytes UTF-8 content-type status line20[ text/mercury;charset=utf-8;]

3x (REDIRECT) 4,096 bytes UTF-8 IRI status line30 mercury://host.xyz/

4x (FAILURE) 4,096 bytes UTF-8 status line40[ DESCRIPTION]

TEXT/MERCURYtext/mercury;charset=utf-8;

Text linesAny line which is not a link.

Link lines=

IRI[ DESCRIPTION]

=

mercury://host.xyz/license CC0-1.0

MERCURI URNurn:mercury:capa

CAPA REQUESTurn:mercury:capa

CAPA RESPONSE20 text/mercury;charset=utf-8;=

urn:mercury:capa<end of connection>

Servers MUST support urn:mercury:capa.

MINIMAL SERVER# while true; do { echo -e '20\r\n=

urn:mercury:capa'; } | nc -l 127.0.0.1 1958; done

MINIMAL CLIENT# echo -e 'urn:mercury:capa\r\n' | nc 127.0.0.1 195820=

urn:mercury:capa

That's all folks.

±0¢

† https://github.com/multiformats/multiaddr <https://github.com/multiformats/multiaddr>

-------------- next part --------------An HTML attachment was scrubbed...URL: <https://lists.orbitalfox.eu/archives/gemini/attachments/20210228/ee824c2b/attachment.htm>