matrix-org/vodozemac

An implementation of Olm and Megolm in pure Rust.

Rust

399

823 commits

updated Sep 22, 2026

See the code

README

vodozemac

vodozemac is an implementation of Olm (Double Ratchet) and Megolm






vodozemac is a pure Rust implementation of the Olm and Megolm cryptographic ratchets, offering a high-level API for straightforward creation of secure communication channels using these ratchets.

Designed as a modern alternative to the libolm cryptographic library, vodozemac is used for end-to-end encryption in Matrix. It provides not only the Olm and Megolm ratchets but also additional cryptographic features useful for developing Matrix clients, such as SAS and the integrated encryption scheme outlined in MSC4108.

Documentation

Explore how to implement end-to-end encryption in our documentation.

Installation

To install add the following to your project's Cargo.toml:

[dependencies]
vodozemac = "0.11.0"

Security notes

This crate has received one security audit by Least Authority, with no significant findings.

cryptography
double-ratchet
encryption
matrix
rust

Contributors

poljar

507 commits

dkasak

118 commits

dependabot[bot]

114 commits

erikjohnston

29 commits

matrix-org/vodozemac

An implementation of Olm and Megolm in pure Rust.

Rust

399

823 commits

updated Sep 22, 2026

See the code

README

vodozemac

vodozemac is an implementation of Olm (Double Ratchet) and Megolm






vodozemac is a pure Rust implementation of the Olm and Megolm cryptographic ratchets, offering a high-level API for straightforward creation of secure communication channels using these ratchets.

Designed as a modern alternative to the libolm cryptographic library, vodozemac is used for end-to-end encryption in Matrix. It provides not only the Olm and Megolm ratchets but also additional cryptographic features useful for developing Matrix clients, such as SAS and the integrated encryption scheme outlined in MSC4108.

Documentation

Explore how to implement end-to-end encryption in our documentation.

Installation

To install add the following to your project's Cargo.toml:

[dependencies]
vodozemac = "0.11.0"

Security notes

This crate has received one security audit by Least Authority, with no significant findings.

cryptography
double-ratchet
encryption
matrix
rust

Contributors

poljar

507 commits

dkasak

118 commits

dependabot[bot]

114 commits

erikjohnston

29 commits

Languages

Rust

99.9%