offline-protocol-mls 0.30.0

MLS (Message Layer Security) integration for end-to-end encryption in the Offline Protocol SDK
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# offline-protocol-mls

MLS (Message Layer Security, [RFC 9420](https://www.rfc-editor.org/rfc/rfc9420)) integration for end-to-end encryption in the [Offline Protocol SDK](https://github.com/Offline-Protocol/offline-protocol-sdk), built on [OpenMLS](https://github.com/openmls/openmls).

Provides:

- `MlsManager` — key package lifecycle, 1:1 session establishment, and group encryption state
- The `MlsStorage` trait — a platform-agnostic secure storage interface that apps back with iOS Keychain, Android Keystore, or an equivalent
- Session and group encrypt/decrypt used by the protocol engine's automatic end-to-end encryption

This crate is an internal layer of the SDK. Most Rust consumers want the main [`offline-protocol`](https://crates.io/crates/offline-protocol) crate instead, which drives key exchange and encryption automatically — see the [MLS integration guide](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/main/docs/mls-integration.md).

## License

Copyright © 2025-2026 Offline Protocol, Inc.

Dual-licensed: [AGPL-3.0-only](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/main/LICENSE) for open-source use, or a [commercial license](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/main/LICENSE-COMMERCIAL.md) for proprietary use.