rage is a Rust implementation of the age file encryption format that provides simple, secure, and modern encryption with small explicit keys, no configuration options, and UNIX-style composability.
The tool solves the problem of accessible file encryption by implementing the age format specification, which emphasizes simplicity and security through design rather than configuration. It uses modern cryptography primitives including Curve25519 for key exchange and Scrypt for passphrase-based encryption. The approach avoids configuration complexity by making secure choices the only choices, and supports multiple encryption modes: direct recipient encryption using small public keys, passphrase-based encryption with automatic secure passphrase generation, and passphrase-protected identity files for scenarios where the identity itself needs protection.
Developers should choose this tool if they need straightforward file encryption without wrestling with configuration decisions. It suits projects requiring interoperability across implementations, since rage implements the standardized age format and can decrypt files created by other age implementations. The tool is particularly valuable for command-line workflows and scripting due to its UNIX-style composability and support for reading recipients from files or standard input. Hardware security token support is available through the separate age-plugin-yubikey plugin for scenarios requiring YubiKey integration.
The project maintains active engagement with its ecosystem, regularly updating to support current Rust versions and accepting contributions for new package managers and distribution channels. Development follows a deliberate approach to feature requests, with the maintainers carefully evaluating additions against the core principle of simplicity. The codebase demonstrates attention to security practices, including support for pinentry integration for passphrase input and automatic decryption of passphrase-protected identity files. The project maintains clear documentation of its design philosophy and actively directs users toward the broader age ecosystem through curated lists of plugins, implementations, and integrations.