{"_id":"@dtelecom/vodozemac-rn","_rev":"2-9e3383427cd34bd64efc9d2fa81a15f7","name":"@dtelecom/vodozemac-rn","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@dtelecom/vodozemac-rn","version":"0.1.0","keywords":["react-native","ios","android","olm","vodozemac","e2ee","crypto","turbomodule"],"author":{"name":"dTelecom","email":"dev@dtelecom.org"},"license":"Apache-2.0","_id":"@dtelecom/vodozemac-rn@0.1.0","maintainers":[{"name":"fffilimonov","email":"vadim@dtelecom.org"},{"name":"grimstun","email":"00_twangs.fervour@icloud.com"}],"homepage":"https://github.com/dTelecom/vodozemac-wasm","bugs":{"url":"https://github.com/dTelecom/vodozemac-wasm/issues"},"dist":{"shasum":"81f5b6243334f6ceb0fa46b8b2aa0d62baea26a4","tarball":"https://registry.npmjs.org/@dtelecom/vodozemac-rn/-/vodozemac-rn-0.1.0.tgz","fileCount":38,"integrity":"sha512-q3BWD7DjVXi7OQULuO+BrGwTa4T2VCSMKbaTfwQQAaeDkBxmtF0tCInWjolfOob6m/LvrLgCN8S6ykG59TAL3w==","signatures":[{"sig":"MEYCIQDPsMAz+DgExyipixa2Yif8peA3aHXKu8OTwba/dyPoJgIhALx5UVoLwgxxkmQF7SWa6vY+HSwmrPBa7uARxpRcCi/J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21728830},"main":"lib/commonjs/index.js","types":"lib/typescript/index.d.ts","module":"lib/module/index.js","source":"src/index.ts","gitHead":"32880b4e42b2e6d84f1d43cf65e3d23790c8e75f","scripts":{"build":"bob build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fffilimonov","email":"vadim@dtelecom.org"},"repository":{"url":"git+https://github.com/dTelecom/vodozemac-wasm.git","type":"git"},"_npmVersion":"10.9.2","description":"React Native bindings for vodozemac (Olm primitives) via UniFFI-generated Swift + Kotlin. Drop-in replacement for @dtelecom/vodozemac-wasm on the RN target — same JS surface, same JSON shapes.","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","codegenConfig":{"name":"RTNVodozemacSpec","type":"modules","android":{"javaPackageName":"com.dtelecom.vodozemac"},"jsSrcsDir":"src"},"_hasShrinkwrap":false,"devDependencies":{"react":"19.2.3","typescript":"^5.7.0","@types/react":"^19.0.0","react-native":"0.84.1","react-native-builder-bob":"^0.36.0"},"peerDependencies":{"react":"*","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/vodozemac-rn_0.1.0_1778745155102_0.09796232176951203","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]}},"0.1.1":{"name":"@dtelecom/vodozemac-rn","version":"0.1.1","description":"React Native bindings for vodozemac (Olm primitives) via UniFFI-generated Swift + Kotlin. Drop-in replacement for @dtelecom/vodozemac-wasm on the RN target — same JS surface, same JSON shapes.","license":"Apache-2.0","main":"lib/commonjs/index.js","module":"lib/module/index.js","types":"lib/typescript/index.d.ts","react-native":"src/index.ts","source":"src/index.ts","scripts":{"build":"bob build","typecheck":"tsc --noEmit"},"keywords":["react-native","ios","android","olm","vodozemac","e2ee","crypto","turbomodule"],"repository":{"type":"git","url":"git+https://github.com/dTelecom/vodozemac-wasm.git"},"homepage":"https://github.com/dTelecom/vodozemac-wasm","author":{"name":"dTelecom","email":"dev@dtelecom.org"},"peerDependencies":{"react":"*","react-native":">=0.76.0"},"devDependencies":{"@types/react":"^19.0.0","react":"19.2.3","react-native":"0.84.1","react-native-builder-bob":"^0.36.0","typescript":"^5.7.0"},"codegenConfig":{"name":"RTNVodozemacSpec","type":"modules","jsSrcsDir":"src","android":{"javaPackageName":"com.dtelecom.vodozemac"}},"publishConfig":{"access":"public"},"react-native-builder-bob":{"source":"src","output":"lib","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]},"_id":"@dtelecom/vodozemac-rn@0.1.1","gitHead":"fbf5d14a206e69a8a1da9b80e1b0425a7c1e21cd","bugs":{"url":"https://github.com/dTelecom/vodozemac-wasm/issues"},"_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-b2m2lYQZWmOiPyNs7ZPne5JPiP7kvSwiDiRKEYTS16abLYkOPyPj04/6oR3p/TfCF7VJoHMiW01S2+J2ItIUmw==","shasum":"9ee3820beaa75cd1b5ed9c37a6608ef02050551a","tarball":"https://registry.npmjs.org/@dtelecom/vodozemac-rn/-/vodozemac-rn-0.1.1.tgz","fileCount":38,"unpackedSize":21732339,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICnly61lfi/ayTJSB0ixMwPEPxMBcvlHvwoIODqQYt6+AiEArMfaUqoX47t/0+d1y4WH/QyGB5IYRwvWGQyX/AwUSMU="}]},"_npmUser":{"name":"fffilimonov","email":"vadim@dtelecom.org"},"directories":{},"maintainers":[{"name":"fffilimonov","email":"vadim@dtelecom.org"},{"name":"grimstun","email":"00_twangs.fervour@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vodozemac-rn_0.1.1_1778765992862_0.1098142683653347"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-14T07:52:35.014Z","modified":"2026-05-14T13:39:53.328Z","0.1.0":"2026-05-14T07:52:35.501Z","0.1.1":"2026-05-14T13:39:53.190Z"},"bugs":{"url":"https://github.com/dTelecom/vodozemac-wasm/issues"},"author":{"name":"dTelecom","email":"dev@dtelecom.org"},"license":"Apache-2.0","homepage":"https://github.com/dTelecom/vodozemac-wasm","keywords":["react-native","ios","android","olm","vodozemac","e2ee","crypto","turbomodule"],"repository":{"type":"git","url":"git+https://github.com/dTelecom/vodozemac-wasm.git"},"description":"React Native bindings for vodozemac (Olm primitives) via UniFFI-generated Swift + Kotlin. Drop-in replacement for @dtelecom/vodozemac-wasm on the RN target — same JS surface, same JSON shapes.","maintainers":[{"name":"fffilimonov","email":"vadim@dtelecom.org"},{"name":"grimstun","email":"00_twangs.fervour@icloud.com"}],"readme":"# @dtelecom/vodozemac-rn\n\nReact Native bindings for [vodozemac](https://github.com/matrix-org/vodozemac)\n(Olm primitives), exposed via a UniFFI-generated Swift + Kotlin native\nbridge. Drop-in replacement for `@dtelecom/vodozemac-wasm` on the React\nNative target — same JS surface (`Account`, `Session`, `InboundResult`),\nsame JSON-string shapes, same pickle format.\n\nUsed by `@dtelecom/secure-chat-client` when running on React Native.\n\n## Why a native bridge instead of WASM\n\nWebAssembly is not yet shipped in any React Native release. Hermes V1\n(RN 0.84+) has runtime Wasm support as of the Feb 2026 preview, but the\nimplementation is in Meta's internal monorepo and isn't reachable from\nany public Hermes commit or RN-bundled prebuilt as of mid-2026. This\npackage routes around the engine entirely: Rust → UniFFI → Swift/Kotlin\n→ TurboModule. No engine dependency, no polyfills.\n\n## Install\n\n```sh\nnpm install @dtelecom/vodozemac-rn react-native-get-random-values\n```\n\nThen once at the top of your app entry (`index.js`), before importing\nanything else:\n\n```ts\nimport \"react-native-get-random-values\";\n```\n\nThe package ships prebuilt artifacts (iOS XCFramework + Android .so for\narm64-v8a, armeabi-v7a, x86_64) — no Rust toolchain needed on the\nconsumer's machine.\n\n## Use\n\n```ts\nimport init, { Account } from \"@dtelecom/vodozemac-rn\";\n\nawait init();                         // no-op on RN; included for parity\n                                      // with @dtelecom/vodozemac-wasm\n\nconst account = Account.new();\naccount.generateOneTimeKeys(50);\n\nconst ids = JSON.parse(account.identityKeys());\n// { curve25519: \"...\", ed25519: \"...\" }\n\nconst otks = JSON.parse(account.oneTimeKeys()).curve25519;\n// { \"<base64KeyId>\": \"<base64PublicKey>\", ... }\naccount.markKeysAsPublished();\n\n// Serialize for persistence — caller is responsible for at-rest encryption.\nconst pickle = account.pickle();\n// later, restore:\nconst restored = Account.fromPickle(pickle);\n\n// Release the native handle eagerly. The package also registers a\n// FinalizationRegistry callback so GC will close handles eventually,\n// but `close()` is the deterministic path.\naccount.close();\n```\n\n## API\n\nIdentical to `@dtelecom/vodozemac-wasm`. See its README for the full\nmethod list. Method names, argument shapes, and return-value JSON\nschemas are bit-for-bit compatible — code calling vodozemac through\n`@dtelecom/secure-chat-client` doesn't know which target it's on.\n\n## Platforms\n\n- iOS 15.1+ (arm64 device + arm64/x86_64 simulator)\n- Android API 24+ (arm64-v8a, armeabi-v7a, x86_64)\n- React Native 0.76+ (new architecture / bridgeless)\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}