

Thanks for tips! i really appriciate the thoughts and advice. id like to drill into the feedback further.
For learning purposes?
sure. as would be the persuit of creating anything worthwhile. i consider myself an expert in javascript. there are countless learnings i had in the approach when i was working with js. rust certainly carries a learning overhead to pull of properly.
use something that already exists like Matrix or Signal
agreed. my project isnt at all compable or as stable as those tried-and-tested implementation. my project is far from comparable, but its not for lack of trying. the key detail that sets this apart from all other apps is the browser based client-side philosophy. no need to install anything. your ID is crypto-random and so the app doesnt need to rely on any central registration system like phone numbers. your ID is unguessable and to connect to someone, you have to explicitly share it. webrtc has other nuances like being to route through a shared network for secure/faster transfer. my approach to “secure messaging” in this project is fundamentally different to signal and matrix and has tradeoffs and capabilities that make a direct comparison nuanced.
No encryption is secure if it isn’t peer reviewed and extensively tested
correct. i am also looking to create something people can use. youre not the first to advise things like peer-review, but its also important to have context?/perspective?. as a unfunded-side-project, things like third-party audit are prohibitively expensive. the best i can offer is to mention the caveats (as is the first thing mentioned in the post and throughout my documentation). its clear and understandable nobody is going to take their own time to review my code/docs. i have tried for various open source funding/grants… all rejections. Kerkhoff’s principles are met, but its clearly too specialized and complicated to review for most… again, its not for lack of trying.
You can do formal verification in any language
i was previsouly investigating what could be done in JS. i couldnt find anything that i liked. perhaps you have any suggestions? i wanted to avoid creating AI-slop to address this and so i though rust would be more suitable with existing “reasonably mature” tooling. i was separately working on the signal-protocol, where i added things like formal-verification… it seems to work well, but there is a bit of a diconnect when bridging js to wasm… and thus this approach for a more pure rust approach. thanks for pointing me to Ferrocene. i’ll take a look. note: im aiming to avoid costs where possible.
This can help defend against timing attacks.
the signal-protocol there aims to address this, like all of my projects, it lacks third-part reviews, but i hope its comprehensively documented (https://positive-intentions.com/docs/technical/p2p-signal-protocol/). there is an unfortunate AI-stink to it that is difficult to remove from my docs, but i hope it doesnt come across as low-effort. i remember the days before AI. without it, i wouldnt be creating docs. i would still encourage you to ask me for clarity on details instead of wasting your time on the docs.
Rust also has a great crypto ecosystem
yes. it was needed for the signal protocol because i needed certain primitives that were not provided by the browser.
thanks again for all the advice. i really appriciate it. id like to avoid having a backend as part of the “philosophy” of the app. it revolves around a webrtc connection and local-only storage.


Thanks. Ive started doing that. With the signal protocol. https://github.com/positive-intentions/signal-protocol
I have a demo of the JavaScript version. The UI there is reasonably mature. https://ui.positive-intentions.com/ . Tauri would be good to package it up into a native app with a web-view, the rust approach would allow for a better native build. I see that native build is only about a couple megabytes (in contrast to a whole functional web-view as the base).
I wonder if there could be architectural benefits to having it all in rust. In particular I’m interested in the idea of “end-to-end formal verification” (I just made that term up. Not sure how to describe it).