I’m the original author of the Rust keepass crate and wanted to prototype whether it would be possible to build a cross-platform password manager using that crate, Tauri, and Vue.js. It turns out, it is!

I have also come up with a way to compile the keepass crate to WebAssembly, so that I can additionally deploy the app to a web browser without any installation needed. See the architecture page in the docs how that is done.

The app is now working on 4 / 5 platforms that Tauri supports, with only iOS missing since I don’t own an iPhone nor an Apple Developer account.

The feature set is still pretty barebones, but the hard parts of decrypting databases, listing entries, etc. are all working, so I wanted to share the proof-of-concept to gather feedback and gauge interest in building this out further.

If you are an Android user and you would like help me release OmniKee on Google Play, please PM me an E-mail address associated with your Google account and I can add you to the closed test. I will need 12 testers signed up for a test for 14 days to get the permissions to fully release.

  • semi [he/him]@lemmy.mlOP
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    21 hours ago

    This is exciting. My only request here is: whenever it works please release a standalone wasm file somewhere (anywhere). So many projects either require building the wasm themselves, or instead of releasing a .wasm, they release a JS wrapper that auto-loads the wasm/wasm-imports. Its a pain to try to extract the wasm out of those projects.

    What I am doing is to create a omnikee-lib crate within the project that will get compiled to WASM, not just plain keepass, because I need additional adapter methods to interface with the web part of the application. I don’t have the bandwidth to turn keepass into a general WASM package that could be npm installed at the moment. As I am dogfooding the crate, I might get to a point where I know what a good JS interface for it would be, though, and the omnikee-lib crate could become the official WASM interface for keepass.