Id like to share my implementation of the signal protocol that i use in my messaging app. The implementation is in rust and compiles to WASM for browser-based usage.
https://github.com/positive-intentions/signal-protocol
Its far from finished and im not sure when its a good time to share it, but i think its reasonable now.
The aim is for it to align with the official implementation (https://github.com/signalapp/libsignal). That version was not used because my use case required client side browser-based functionality and i struggled to achieve that in the official one where javascript is used but is targeting nodejs.
There are other nuances to my approach like using module federation, which led to me moving away from the official version.
I am using AI to do this so its important to be clear that im not asking you to audit or review my vibecoded project. While i have made attempts to create things like audits and formal-proof verication, i know better than to trust AI when it tells me its working correctly.
Sharing it now if there is feedback about the implementation. Anything i may be over looking? Feel free to reach out for clarity on any details.
See it in action here in the work-in-progress demo: https://p2p.positive-intentions.com/iframe.html?globals=&id=demo-p2p-messaging--p-2-p-messaging&viewMode=story
This might be interestng for some xmpp webclients, but there is also the work in progress: https://github.com/conversejs/libomemo.js


