A usable, easy, and safe pure-Rust cryptography library for AEAD, hashing, KDF, ECDH, and more.
Orion is a cryptography library written entirely in Rust, designed to provide developers with easy-to-use and secure cryptographic primitives. It emphasizes safety by minimizing the use of unsafe code and includes formally verified arithmetic for critical components like X25519 and Poly1305. The library supports a wide range of cryptographic operations, including authenticated encryption, hashing, key derivation, and key exchange.
Rust developers who need a safe, auditable, and comprehensive cryptographic library for applications requiring encryption, hashing, key management, or secure communication. This includes developers building secure backend services, privacy-focused tools, or systems requiring modern cryptographic protocols like HPKE and ML-KEM.
Developers choose Orion for its strong emphasis on safety through minimal unsafe code and formally verified components, combined with a comprehensive suite of modern cryptographic algorithms. Its design prioritizes usability without compromising security, offering a pure-Rust implementation that is well-documented and actively maintained with features like constant-time execution testing and fuzzing.
Usable, easy and safe pure-Rust crypto
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Orion emphasizes safety by minimizing the use of unsafe Rust code, as highlighted by the 'unsafe-forbidden' badge, reducing potential vulnerabilities.
Critical components like X25519 and Poly1305 use formally verified arithmetic generated by Fiat Crypto, ensuring correctness and security in key operations.
Supports a wide range of cryptographic primitives including HPKE, ML-KEM, and Argon2i, covering most contemporary use cases from hashing to key exchange.
Includes daily tests, constant-time execution checks via dudect, and fuzzing with honggfuzz-rs, as detailed in the wiki, enhancing reliability.
The library has not undergone any third-party security audit, which may be a significant risk for high-stakes applications, as admitted in the README.
APIs under the experimental feature flag may contain breaking changes in any non-SemVer-breaking release, adding uncertainty for developers relying on them.
Minimum Supported Rust Version changes are not considered SemVer breaking, potentially causing unexpected build failures without clear versioning signals.