Signal Protocol
Guides

Runtime profiles

Select browser, Node.js, and Expo behavior deliberately.

The SDK targets native JavaScript across several environments. Each runtime supplies different storage and lifecycle guarantees.

Browser

  • Prefer Web Crypto and non-extractable keys where the selected API permits.
  • Treat IndexedDB and local storage as application-controlled persistence boundaries.
  • Consider cross-tab coordination and origin isolation.

The IndexedDB adapter is experimental

The current web storage adapter is not yet feature-equivalent with the Expo adapter. Validate the flows your product needs before treating browser persistence as production-ready.

Node.js

  • Keep storage paths and file permissions explicit.
  • Do not assume process memory can be reliably scrubbed.
  • Test the bundled artifact under every maintained Node.js line you support.

Expo

  • Use the Expo-specific storage adapter rather than browser shims.
  • Treat backup, device transfer, and secure-storage availability as explicit product policy.
  • Verify behavior on both iOS and Android release builds.

WebAssembly or native callouts may become useful performance backends later. They are not required for the current JavaScript profile.

On this page