TL;DR: Just go to retichat.com
So I felt the need to AI-write a web implementation of Reticulum, called Reticulum-post. For four reasons:
- to harness the power of Reticulum in webpage form
- to take advantage of a massive amount of cheap network infrastructure
- to help make Retichat/RFed more accessible and build support for the extension
- because we can
You may or may not imagine, it was a bit of a trick making Reticulum work with the ephemeral nature of POST requests. But if LoRa and QR codes can carry Reticulum, HTTP should be no problem.
Bidirectional initiation is straight forward. Just like LoRa, each node just pushes data when it has something to say.
Web servers don't work like that. They're meant to be stateless. And servers generally can't send data to a network address without the client initiating the connection first. There is major efficiency to be gained from that. Maintaining connections is cumbersome. Splitting up the process into self contained chunks allows servers to handle many requests from many machine without trying to remember the state of each machine (mostly)
Reticulum works really well in that format. It is designed to be asynchronous and sometimes sparse. As the spec says: as low as 5 bits per second. So this implementation takes all of Reticulum's packet building, relaying, path management, and clean up and shoves it into a buffer, waiting for the next initiated "exchange". Clients merely poll for both sending and receiving data, and the 0 data poll is very lightweight
That's the long and the short of it. It doesn't require anything on the server side except php. In order to bridge it to the backbone network, I have my one rnsd node polling (1 per second) with a custom interface, PostInterface. But ideally someone that isn't behind a firewall would do a bidirectional bridge
As usual, this is heavily AI written and completely open source:
https://github.com/jrl290/Reticulum-post
https://github.com/jrl290/Retichat-js
And it is very early in development. It really only started out as a proof of concept and now it is worth seeing to the finish. I think it is good to develop Retichat in parallel so that I can stay consistent as I understand fully what shape it should take