openmls 0.3.0

This is a WIP Rust implementation of the Messaging Layer Security (MLS) protocol based on draft 9+.
docs.rs failed to build openmls-0.3.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: openmls-0.5.0

OpenMLS OpenMLS Chat

build status Build & Test Deploy Docs codecov OpenMLS List

A WIP Rust implementation of Messaging Layer Security based on draft 9+.

Supported ciphersuites

  • MLS10_128_HPKEX25519_AES128GCM_SHA256_Ed25519 (MTI)
  • MLS10_128_DHKEMP256_AES128GCM_SHA256_P256
  • MLS10_128_HPKEX25519_CHACHA20POLY1305_SHA256_Ed25519

Supported platforms

  • linux x86_64
  • linux arm32
  • linux arm64
  • macOS x86_64

Dependencies

OpenMLS relies on EverCrypt, a high-performance, cross-platform, formally verified modern cryptographic provider through EverCrypt Rust bindings.

Development

Build

  • run cargo build

Test

  • run cargo test

Benchmark

  • run cargo bench

Workspace

This repository is a cargo workspace with the OpenMLS library as the main component. It further holds the following crates that are used for testing.

Delivery Service

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.


License

OpenMLS is licensed under the MIT license. The license can be found here.

Contributing

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.