I wanted to implement the Signal protocol for a series of secure messaging apps I’m working on, so I built this project to test and use in my own work. It’s still far from finished, but I think it’s at a stage where it’s worth sharing with the community.
IMPORTANT DISCLAIMER: This project is not professionally audited and is not production-ready. I do not recommend anyone use this in their own code yet. It is provided strictly for testing, experimentation, and demo purposes. I used AI as an assistant to help build this, so double-check everything before taking it seriously.
Project Links:
Current Status & Development:
- Spec Alignment: The goal is to fully align with the official Signal protocol spec.
- Testing: It includes unit tests, but due to WASM testing limitations, I also added a Storybook-like UI to run and test it directly within a browser environment.
So you needed an implementation of a e2e protocol in rust.
So why didn't you use signals libraries directly? Or the Matrix implementation of it. Or OpenMLS the probable follower of the axolotl protocol.
All of which are implemented in Rust. All of them.had at least one security audit. All of them where implemented by people probably knowing much more about cryptonthen you.
Because vibe coders would rather spend the extra 100k tokens to have Claude "write it themselves" than actually have to do work in finding and integrating a 3rd party library I think 😂
There are a few nuances to my approach, but the key detail is that I wanted it to also work in a browser so I needed the ability to build to a wasm to be used in js.
Signal doesnt offer browser based capabilities and so I created this to target web aswell as native.