libomemo.js is still very much a work in progress.
I'm still busy updating it to use the latest protobuf.js which has a completely different API.
Once that's done, I'll make the OMEMO-related protobuf changes to the lib.
I'm also considering migrating the codebase to TypeScript.
Eventually is should be possible for all other JavaScript XMPP clients to use libomemo.js for the crypto part of OMEMO.
The crypto primitives are compiled from C via emscripten.
One cool thing is that emscripten now compiles to WASM which is much faster than normal JS.