Skip to main content
The Mesh SDK is Offline Protocol’s offline mesh networking SDK. It runs inside your application on every participating device and lets those devices message each other, replicate shared documents and invoke services over Bluetooth LE, local IP networks or a relay, with or without internet access. The current release is v0.31.0: @offline-protocol/mesh-sdk@0.31.0 for React Native, offline-protocol-sdk 0.31.0 on PyPI for Python, the offline-protocol crates 0.31.0 on crates.io, com.offlineprotocol:offline-protocol-java 0.31.0 on Maven Central for Java, offline_protocol 0.31.0 on RubyGems for Ruby, a C header and library in the GitHub release, preview Swift, Android and Flutter packages, and an experimental browser binding. The Mesh SDK combines device identity, transport routing, encrypted messaging, replicated documents and service discovery. React Native exposes these through OfflineProtocol, DataStore and MeshServices; Python, Java, C, Ruby, the browser and Rust provide their own bindings over the same core.

Build by workflow

Security and delivery

Device addresses are derived from identity keys. MLS protects application messaging; the application controls enrollment and authorization. Service RPC bodies are sealed in the MLS session once both devices run v0.29.0 or later and the session is confirmed; discovery and a first request to a provider never met are signed plaintext, so they must not carry confidential content. The SDK provides bounded retries, acknowledgments and persisted state. Delivery depends on a usable path and configured limits. Business acceptance and backend commit remain explicit application responsibilities.

Install

Start with React Native, Python or Rust and embedded. To share one node among several applications on a host, run the local API service, and to let programs that do not use the SDK call services on other devices over HTTP, the HTTP front. For desktop and server programs, use the Java, C or Ruby binding, and for a web page the browser binding (experimental). The Swift and Android packages and the Flutter plugin are previews. Check transport compatibility before selecting devices. The reference targets v0.31.0. Upgrade guidance explains changes from earlier versions and lists what v0.31.0 adds. See licensing before distributing your application.