Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Documentation

Two kinds of document live here, and they answer different questions.

Guides answer "how do I use this". Start with the Quick Start and the integration guide for your platform.

Reference answers "what is the contract" and "why is it like this". Read it before changing behaviour, not before using the SDK.

Getting Started

Guide Description
Quick Start Get started in 5 minutes (React Native, iOS, Android)
Upgrading Breaking changes and required app-side work
React Native Integration Full SDK integration guide with complete API reference
iOS Integration Native iOS (Swift) setup and usage
Android Integration Native Android (Kotlin) setup and usage

Core Concepts

Guide Description
Architecture Design philosophy, crate organization, and system overview
API Reference Core types, configuration structs, main API, and events
Configuration All configuration parameters with use-case examples

Features

Guide Description
DORS Deep Dive How the transport selection engine works (scoring, switching, escalation)
DORS Configuration Tuning DORS for different use cases with parameter reference
Message Delivery Delivery lifecycle, retry/ACK system, flush triggers, and client-side persistence
Mesh Networking Peer discovery, connection management, message delivery, and routing
Replicated Documents Offline-first shared state: spaces, collections, how edits merge, attachments, storage
MLS Encryption End-to-end encryption with auto-encryption and manual MLS APIs
Service Discovery Decentralized service registration, discovery, and request/response
Telemetry Wire up a telemetry sink for metrics, routing decisions, and MLS lifecycle
Transport Architecture Transport abstraction layer and how to add new transports
Reticulum Transport Reticulum mesh transport setup, architecture, and platform integration
Nostr Transport Nostr relay transport, censorship-resistant routing over WebSockets

Protocol specification

The wire and behaviour contract, independent of this implementation. A second implementation written against these documents should interoperate.

Document Scope
Specification index Layering, conformance language, the two overriding invariants
Identity and addressing Address derivation, canonical form, session and group identifiers
Message model and wire format The abstract message, the JSON floor, binary v1, the extension TLV registry
Control messages Reserved prefix registry, control-plane signing, the two exemption classes
Document replication Sync frames, anti-entropy, attachment references, blobs over the media path
Encryption envelopes MLS envelope forms, media chunk envelope, sealed rich payload
Group protocol Group frames, membership commits, leaf identity binding, relay broadcast
Capability negotiation What peers advertise, what it gates, what absence means
Leaf node provisioning What a constrained device owes at pairing, the never-committing profile

Security

Document Scope
Threat model and trust boundaries Assets, adversary classes, controls, and the residual risks stated plainly
Security Policy Vulnerability reporting and safe harbor

State machines

Document Governs
Overview The invariant that spans all six
Delivery and acknowledgements What happens to an inbound frame, and when a receiver acknowledges
Outbox and retries An outbound message from send to terminal state
Session lifecycle 1:1 MLS establishment, confirmation, desync, and heal
Group message lifecycle A group message through fan-out, buffering, and drain
Transport lifecycle Transport availability, scoring, switching, escalation
Document replication A document from edit to durable record, a space from offer to convergence, an attachment fetch

Decisions

Document Scope
ADR index Twenty-three decisions that are expensive to reverse or easy to undo by accident

If something in the codebase looks redundant or over-engineered, check here before simplifying it.

Bridge contracts

What each language binding owes the core, and what the core owes it. Every rule in here fails silently when violated.

Document Scope
Shared contract The ten rules every binding shares
Swift iOS native and the React Native iOS bridge
Kotlin Android native and the React Native Android bridge
Python Desktop and tooling
TypeScript The React Native JavaScript surface

Release history

Resource Description
CHANGELOG Unreleased changes and the current release
Changelog archive Older releases, one file per minor series

Examples

Resource Description
React Native Example App Complete messaging app demonstrating all SDK features
Example App Setup First-time setup for the example app
Example App Integration Guide Step-by-step project integration walkthrough
Mesh Wiki Mesh services: a device answering queries over BLE with no internet
Storage adapters SQLite ProtocolStateStorage implementations for Swift, Kotlin and Python
cargo run -p offline-protocol --example replicated_notes Replicated documents: open a store, edit, persist, reopen
cargo run -p offline-protocol-data --example offline_merge What two people editing the same document offline actually get back

Contributing

Resource Description
Contributing Guide Development setup, code quality standards, and PR process

Licensing

Resource Description
Licensing FAQ The dual license in practice: app stores, the AGPL's reach, commercial licensing
Export Control Notice Encryption export status of the SDK and what app teams must handle themselves