I just read
Discussions toward radically sustainable computing by Solderpunk.
I've read some of the discussions arguing against TLS on the Gemini mailing list. My main arguments *for* TLS (besides the obvious: confidentiality and integrity) are that
1. TCP already has a considerable overhead, and
2. TCP is very hard to really understand.
That is, the arguments stating that TLS adds network overhead or is difficult to understand are a drop in the bucket for a TCP based protocol.
On the other hand, the argument about energy consumption left me wondering. Sure, with current typical equipment, the real power consumption savings are elsewhere. But if you were to use Gemini over a slow, high-latency radio link, with battery-powered devices, it all starts to count.
So.
What if there was an emergency lifeboat version of Gemini, throwing away both confidentiality and integrity in the name of simplicity and minimal resource consumption?
Here's my draft idea. A companion protocol called Aquarius that serves the same content as Gemini but over a connectionless transport protocol. The typical implementation would respond to plain-text requests on UDP, port 1970. You'd get aquarius:// URLs from gemini:// just by switching scheme, if the server supports aquarius. *But* you could also serve aquarius over avian carriers, sneakernet or whatever. I'm just too ignorant to think of other realistic transports than UDP.
This would obviously be only for human consumption. The responses could be garbled or have missing segments. There would be no error correction at all: caveat emptor; request again if you suspect the content. And of course Gemini would be the preferable protocol for all the cases where it is at all possible.
But if you wanted to serve with an AA battery powered STM32F106 over LoRa, this would probably work whereas TCP+TLS is out of the question.
I'd love to hear thoughts on this over email. If someone finds this actually worthwhile, maybe the Gemini mailing list is a good place for a thread. Right now it's a protocol no one should use, but if we were to implement it in server software we'd have it in case of emergency.
Note that I wrote this one morning after thinking for 15 minutes, in 15 minutes. This is not meant to be a critique of Gemini and I might consider this a very bad idea tomorrow.
Please see some clarifications from this post made later the same day: