MeshKit
Runtimes

Runtimes

Runtime adapters that bind MeshKit Core to app environments.

Runtime packages adapt MeshKit Core to the environment your app runs in. They do not replace Core or change the envelope/provider model.

Choose a runtime when platform capabilities matter: key storage, file streaming, background work, filesystem access, IndexedDB, service workers, native bridges, or environment-based provider config.

Runtime Chooser

RuntimePackageBest forMain caveat
App facade@meshkit/meshkitMost app features and local quickstartsUses default local-dev behavior unless configured
Node@meshkit/nodeServers, workers, CLIs, integration testsProcess memory is not a durable key vault by itself
Web/PWA@meshkit/webBrowser apps and service-worker-aware clientsDo not expose unrestricted Kubo RPC to browsers
React Native@meshkit/react-nativeNative mobile apps with bridge hooksNative bridge availability decides key-vault strength
Ionic/Capacitor@meshkit/ionicHybrid apps with Capacitor secure storageBrowser fallback is weaker than native secure storage

Same Product Model

Every runtime still follows the same MeshKit flow:

plaintext in app runtime
-> MeshKit Core
-> encrypted envelope
-> provider stores encrypted bytes and metadata
-> app stores CID, proof, capsule, message, or job identifiers

What Runtimes Change

CapabilityWhy it differs
Key storageWeb, Node, React Native, and Ionic have different secure storage primitives
File accessNode has filesystem access; browsers and mobile apps depend on platform APIs
StreamsRuntime stream types and memory pressure differ
Background syncService workers, mobile background tasks, and server workers have different lifecycle rules
Provider configBrowsers/mobile should not receive privileged provider tokens for operator services
Native bridgeReact Native and Ionic features depend on installed native modules

Production Questions

Before selecting a runtime, answer:

  1. Where are identity records stored?
  2. Are keys exportable or non-exportable in this runtime?
  3. Can this runtime safely reach the provider endpoint?
  4. Is background work caller-managed, service-worker-managed, or native-managed?
  5. Can this runtime stream large files without loading them fully into memory?
  6. How are provider tokens kept away from public clients?

Next Steps

On this page