#encryption #rage


[BETA] A simple, secure, and modern encryption library

11 releases (7 breaking)

0.7.0 Oct 18, 2021
0.6.0 May 2, 2021
0.5.1 Feb 13, 2021
0.5.0 Nov 22, 2020
0.0.0 Oct 6, 2019

#135 in Cryptography

Download history 279/week @ 2021-08-08 263/week @ 2021-08-15 149/week @ 2021-08-22 101/week @ 2021-08-29 261/week @ 2021-09-05 303/week @ 2021-09-12 393/week @ 2021-09-19 335/week @ 2021-09-26 325/week @ 2021-10-03 212/week @ 2021-10-10 384/week @ 2021-10-17 240/week @ 2021-10-24 332/week @ 2021-10-31 293/week @ 2021-11-07 300/week @ 2021-11-14 165/week @ 2021-11-21

1,053 downloads per month
Used in 9 crates (5 directly)


6.5K SLoC

age Rust library

age is a simple, modern, and secure file encryption library. It features small explicit keys, no config options, and UNIX-style composability.

This crate provides a set of Rust APIs that can be used to build more complex tools based on the age format. The primary consumers of these APIs are the rage CLI tools, which provide straightforward encryption and decryption of files or streams (e.g. in shell scripts), as well as additional features such as mounting an encrypted archive.

The format specification is at age-encryption.org/v1. To discuss the spec or other age related topics, please email the mailing list at age-dev@googlegroups.com. age was designed by @Benjojo12 and @FiloSottile.

The reference interoperable Go implementation is available at filippo.io/age.


Add this line to your Cargo.toml:

age = "0.7"

See the documentation for examples.

Feature flags

  • armor enables the age::armor module, which provides support for ASCII-armored age files.

  • async enables asynchronous APIs for encryption and decryption.

  • cli-common enables common helper functions for building age CLI tools.

  • ssh enables the age::ssh module, which allows for reusing existing SSH key files for age encryption.

  • web-sys enables calculating the work factor for passphrase encryption with the Performance timer via the web-sys crate, when compiling for a WebAssembly target such as wasm32-unknown-unknown. This feature is ignored for the wasm32-wasi target, which supports std::time::SystemTime.

  • unstable enables in-development functionality. Anything behind this feature flag has no stability or interoperability guarantees.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~188K SLoC