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:
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>