// the find
margelo/react-native-quick-crypto
⚡️ A fast implementation of Node's `crypto` module written in C/C++ JSI
A C++ JSI implementation of Node's crypto module for React Native, built on OpenSSL and the Nitro Modules framework. It's a drop-in replacement for crypto-browserify or react-native-crypto, aimed squarely at web3 wallets and apps that need real cryptographic performance on mobile — not the 'run it in JS and hope' approach.
The Nitro Modules architecture (v1.x) is the right call — pure C++ with JSI means zero bridge serialization overhead for binary data, which matters enormously for crypto workloads. The coverage is genuinely broad: ECDH, Ed25519, HKDF, Scrypt, Argon2, Blake3, post-quantum primitives, X.509 certificates — this isn't just SHA256 and AES. The metro resolver approach for aliasing 'crypto' is clean and doesn't require babel transforms. Having a real benchmark suite in the example app with side-by-side JS comparisons is more honest than just claiming '100x faster'.
The v1.0 migration from bridge/JSI to Nitro Modules is a breaking change that drops RN < 0.75 support with no clear backport path — anyone on an older RN version is stuck on 0.x, which is presumably getting less attention. Not all Node crypto APIs are implemented yet and the coverage doc is the only place to find out what's missing before you get a runtime error. The three-peer-dependency install (nitro-modules, quick-base64, plus this) creates version matrix pain, especially with Expo's prebuild cycle. The C++ layer means debugging crypto failures on-device is significantly harder than in pure JS — stack traces through JSI are not developer-friendly.