Orion is a cryptography library written in pure Rust. It aims to provide easy and usable crypto while trying to minimize the use of unsafe code. You can read more about Orion in the wiki.
Currently supports: AEAD: (X)ChaCha20Poly1305. Hashing: BLAKE2b, SHA2. KDF: HKDF, PBKDF2, Argon2i. Key exchange: X25519. MAC: HMAC, Poly1305. Stream ciphers: (X)ChaCha20.
This library has not undergone any third-party security audit. Usage is at own risk.
Rust 1.52 or later is supported however, the majority of testing happens with latest stable Rust.
MSRV may be changed at any point and will not be considered a SemVer breaking change.
safe_api: All functionality, requires
serde: Requires either
alloc: Argon2i in
safe_apiis not available.
no_std: Implicit feature that represents no heap allocations. Enabled by disabling default features and not selecting any additional features.
More detailed explanation of the features in the wiki.
Can be viewed here or built with:
RUSTDOCFLAGS='--cfg docsrs' cargo +nightly doc --no-deps --all-features
The wiki has details on how orion is tested. To run all tests:
An overview of the performance that can be expected from Orion can be seen here.
The library can be benchmarked with Criterion as below. All benchmarking tests are located in
Please refer to the CHANGELOG.md list.
Please refer to the guidelines in CONTRIBUTING.md for information on how to contribute to Orion.
Orion is licensed under the MIT license. See the
LICENSE file for more information.