Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ecies/js-post-quantum/llms.txt
Use this file to discover all available pages before exploring further.
@ecies/post-quantum is designed to run anywhere modern JavaScript runs. The library has been tested and confirmed working on Node.js, Bun, Deno, all major modern browsers, and React Native. The same encrypt / decrypt API works identically across all platforms — only the setup steps differ slightly per environment.
Platform support
| Platform | Status | Minimum Version |
|---|---|---|
| Node.js | ✅ Fully supported | 16 |
| Bun | ✅ Fully supported | 1 |
| Deno | ✅ Supported (see notes) | 2 |
| Browser | ✅ Fully supported | modern |
| React Native | ✅ Supported (see notes) | — |
Node.js
Node.js 16 and later are fully supported with no extra configuration. The library automatically usesnode:crypto’s native AES-256-GCM implementation when it is available, giving you hardware-accelerated symmetric encryption with no code changes.
Install the package and run your script as you would any ESM package:
Bun
Bun works identically to Node.js. Install withbun add @ecies/post-quantum and run with bun main.js. The same example code used for Node.js runs unchanged.
Deno
Deno 2 and later are supported. Because of how Deno resolves Node.js compatibility conditions, you need to pass an extra flag when running scripts that depend on this library.Browser
The library is fully browser-compatible and relies on the Web Crypto API, which is available in all modern browsers. There are no Node.js-specific APIs in the hot path for browser builds. You can try an interactive demo at post-quantum-demo.ecies.org. Bundlers including Vite, webpack, and esbuild are all supported. Install and import the package as usual:React Native
React Native is supported, but you must polyfillcrypto.getRandomValues because the standard React Native environment does not expose it. The react-native-get-random-values package provides this polyfill.
@ecies/post-quantum:
Native crypto acceleration
Via@ecies/ciphers, the library automatically selects node:crypto’s native AES-256-GCM implementation on Node.js and Bun when it is available, falling back transparently to the pure-JavaScript implementation from @noble/ciphers on platforms where node:crypto is not present (browsers, React Native). No configuration is required — the right implementation is chosen at runtime.