Documentation Index
Fetch the complete documentation index at: https://mintlify.com/openmls/openmls/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
OpenMLS requires Rust 1.56 or later. Make sure you have Rust installed:Add OpenMLS to your project
Add OpenMLS to yourCargo.toml:
Cargo.toml
Choose a crypto provider
OpenMLS requires a cryptographic provider. You have several options:Option 1: Rust Crypto (recommended for getting started)
Theopenmls_rust_crypto provider uses pure Rust cryptographic implementations:
Cargo.toml
Option 2: libcrux provider
Thelibcrux provider offers formally verified cryptographic implementations:
Cargo.toml
Option 3: Custom provider
Implement the provider traits yourself for full control. See Custom implementation for details.Storage provider
OpenMLS needs a storage backend for key material and group state:In-memory storage (development)
For testing and development, use the memory storage provider:Cargo.toml
SQLite storage (production)
For production applications, use the SQLite storage provider:Cargo.toml
Credentials
For basic credential support, add the basic credential crate:Cargo.toml
Feature flags
OpenMLS provides several optional features:Production features
extensions-draft-08
extensions-draft-08
Enable features defined in MLS extensions draft-08:
Cargo.toml
fork-resolution
fork-resolution
Enable helper functionality for resolving forks in MLS groups:See Fork resolution for usage details.
Cargo.toml
js
js
Enable compilation to WebAssembly with JavaScript APIs:
Cargo.toml
This feature is required when building for
wasm32-unknown-unknown to access secure randomness and timing APIs.Development features
test-utils
test-utils
Utilities for testing, including in-memory storage:
Cargo.toml
backtrace
backtrace
Enable backtrace support for error handling:
Cargo.toml
content-debug
content-debug
Allow printing sensitive message content for debugging:
Cargo.toml
crypto-debug
crypto-debug
Allow printing cryptographic key material for debugging:
Cargo.toml
Complete example configurations
For development and testing
Cargo.toml
For production
Cargo.toml
For WebAssembly
Cargo.toml
Verify installation
Create a simple test to verify your installation:src/main.rs
Next steps
Quickstart
Create your first MLS group with a complete working example