Talking to your Friends directly and without any middlemen. No artificial intermediaries; no overhead; just p2p communication - you and your friends.
The low level p2p library is planned to be released for rust, nodejs and python and can be used for other purposes too. The chat itself is meant to become a Webcomponent that can be included by any app that want’s it.
why this is special
This might not look like a big deal and sound like something totally possible in the classic web too but it’s not.
Sure p2p communication/networks are nothing new. But in the end it always boils down to “how do I exchange my contact info with my peers?!” … and then we’re quickly in server-land again. All messengers out there are dead without their discovery servers being reachable … or at least some exposed hosts enabling the rendezvous info to be exchanged … (feel free to correct me if you think this statement is too bold and you know of anything that doesn’t rely on at least some publicly reachable exposed hosts)
With Autonomi there finally is a place where we can just put our peer connection info so both communication partners can reach out and see if they can connect in intervals/timeslots (yes so basically autonomi acts as the exposed host where data can be stored to/retrieved from … but it’s a pretty hard to take down host; especially since the peer info of different communication channels will be spread out the network and hard to locate). This enables a Message exchange service impossible to take down.
current state of development
Together with a couple of other smaller design changes I’ve already modified a encrypted reliable udp hole-punching library to work with all OSes (previously it was only windows and linux - now MacOS too)
next step will be to hole-punch/communicate to multiple peers instead of only having 1:1 communication
once the protocol is tested and proven I plan to translate it to rust and nodejs to have the ability enable live-signaling (in a easy to use manner) in as many applications as possible with a common standard.
to test the protocol and to implement something immediately useful I’ll write a chat-app that loads the peer info from scratchpads from autonomi - every peer just updates their own connection info and the people he shared it with can reach out to him creating a mesh network of live comms.
GitHub - rid-dim/friends <<< the previous version was running with a self written hole-punching logic this is now being replaced by the tested algorithm I’m building upon.
the vision
In terms of Features I’m planning to enable themes as plugins (css loaded from autonomi links) as well as stuff like live-translations, moderation, bot-analysis, sentiment-analysis, fact-checking, … as “message-modifiers” (Javascript Web Components with Standardized Interface) that can be simply imported from autonomi addresses as well … as many as you want … and the smartest/dumbest you want.
Adding additional controls to the chat-window (gifs, custom emojis, weather info, location-sharing, …) can also be implemented as importable WebComponents directly from Autonomi.
So an immutable, unstoppable chat where everyone is free to add his styling/plugins/features and nobody can take it down or a feature away again. Ever.
oh well and the live-communication libraries can ofc be used by other apps too for random purposes (status sharing, push-notifications, live-streaming of temporary data, settling a deal that then get’s written to autonomi as immutable data, …)
… I’ve additional plans with exposed hosts as “gates” that can enable connections even when hole-punching fails (for others too), relayed connections with signed messages for less parallel connections in large chats, … but first things first …