A WIP Rust implementation of Messaging Layer Security based on draft 9+.
- MLS10_128_HPKEX25519_AES128GCM_SHA256_Ed25519 (MTI)
OpenMLS is built and tested on the Github CI for the following rust targets.
Additionally, we're building and testing aarch64-unknown-linux-gnu on drone.io.
The Github CI also builds (but doesn't test) the following rust targets.
OpenMLS only supports 32 and 64 bit platforms.
OpenMLS does not implement its own cryptographic primitives. Instead, it relies on existing implementations of the cryptographic primitives used. There are two different cryptography backends implemented right now. But consumers can bring their own implementation. See traits for more details.
OpenMLS requires at least Rust 1.56.0.
This repository is a cargo workspace with the OpenMLS library as the main component.
In order to use OpenMLS an implementation of the traits is required. This repository provides two default implementations
- Rust Crypto
It further holds the following crates that are used for testing.
A basic delivery service can be found in delivery-service/ds. To interact with the delivery service the ds-lib provides the necessary types.
Command line Client
A basic command line client can be found in cli. Note that this is a PoC for testing and must not be used for anything else.
OpenMLS is licensed under the MIT license. The license can be found here.
OpenMLS welcomes contributions! Before contributing, please read the contributing guidelines carefully. You can start by looking at the open issues or join the discussion on GitHub discussions or Zulip.
Code of conduct
OpenMLS adheres to the Contributor Covenant Code of Coduct. Please read the Code of Conduct carefully.