HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
str4d
rage
Rust2019–2024
str4d / rage

rage

A simple, secure and modern file encryption tool (and Rust library) with small explicit keys, no config options, and UNIX-style composability.

16Distinct people
22Mentions
0Explicit recommenders
3.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A simple, secure and modern file encryption tool (and Rust library) with small explicit keys, no config options, and UNIX-style composability.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 11:56:56 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year22 dated mentions

Observed mentions: 2019-12-28 06:37:30 UTC to 2024-08-05 12:45:01 UTC.

02462019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC312
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC303
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC606
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC606
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC303

What Hacker News says

22 sources
_o/ hi all, age author here! age is the one of my projects that grew most organically into an ecosystem. It's always great to see what people build with it. Happy to answer any questions. Here are some previous discussions 132 points on Feb 26, 2023 | 77 comments | https://news.ycombinator.com/item?id=34936504 126 points on Sept 26, 2022 | 54 comments | https://news.ycombinator.com/item?id=32980141 113 points on June 11, 2022 | 33 comments | https://news.ycombinator.com/item?id=31705670 494 points on Sept 6, 2021 | 88 comments | https://news.ycombinator.com/item?id=28435613 466 points on Dec 27, 2019 | 199 comments | https://news.ycombinator.com/item?id=21895671 and here some related resources - a list of age ecosystem projects https://github.com/FiloSottile/awesome-age - the format specification https://c2sp.org/age - the Go library docs
Read the rest
https://pkg.go.dev/filippo.io/age - the CLI man page https://filippo.io/age/age.1 - the large reusable test suite (which I should write about!) https://c2sp.org/CCTV/age - an interoperable Rust implementation by @str4d https://github.com/str4d/rage - an official TypeScript implementation https://github.com/FiloSottile/typage (based on libsodium.js in the latest version, and on pure-js Noble libraries on main) - a YubiKey plugin by @str4d https://github.com/str4d/age-plugin-yubikey - the plugin protocol specification https://c2sp.org/age-plugin - a Windows GUI by @spieglt https://github.com/spieglt/winage - a discussion of the authentication properties of age https://words.filippo.io/dispatches/age-authentication/ - a discussion of the plugin architecture https://words.filippo.io/dispatches/age-plugins/ - a discussion of a potential post-quantum plugin https://words.filippo.io/dispatches/post-quantum-age/ - a password-store fork that uses age instead of gpg https://github.com/FiloSottile/passage (see also: how I use it with a YubiKey https://words.filippo.io/dispatches/passage/)
In Age is a simple, modern and secure file encryption tool, format, and Go library
_o/ hi all, age author here! The OP link is the spec, here's a few other things you might find interesting - the Go reference implementation https://age-encryption.org - the Go library docs https://pkg.go.dev/filippo.io/age - the CLI man page https://filippo.io/age/age.1 - the large reusable test suite (which I should write about!) https://c2sp.org/CCTV/age - an interoperable Rust implementation by @str4d https://github.com/str4d/rage - a YubiKey plugin by @str4d https://github.com/str4d/age-plugin-yubikey - the draft plugin protocol specification (which we should really merge) https://github.com/C2SP/C2SP/pull/5/files?short_path=07bf8cc... - a Windows GUI by @spieglt https://github.com/spieglt/winage - a discussion of the authentication properties of age https://words.filippo.io/dispatches/age-authentication/ - a discussion of a potentia
Read the rest
l post-quantum plugin https://words.filippo.io/dispatches/post-quantum-age/ - a password-store fork that uses age instead of gpg https://github.com/FiloSottile/passage (see also: how I use it with a YubiKey https://words.filippo.io/dispatches/passage/) (Yes I should make a website to collate all this.) Happy to answer any questions!
In Age: Modern file encryption format with multiple pluggable recipients
I'm not convinced that whole-disk encryption is sensible for most threat models, but I use the built-in FileVault on macOS (under the reasoning that, at the very least, it can't really hurt). On Linux, I use age[1] (specifically, rage[2]) to encrypt sensitive files. I wrote a secret manager that uses the latter as an encryption backend[3], and I use `rage-mount` to mount (read-only) views of encrypted archives. [1]: https://github.com/FiloSottile/age [2]: https://github.com/str4d/rage [3]: https://github.com/woodruffw/kbs2
In Ask HN: What do you use for encrypting your personal stuff?
Hello! age (https://age-encryption.org) author here. Different tools can definitely be better for different use cases (for example I am a fan of restic [0] for backups, although age is designed to compose well with tar, if that's your thing), but do you mind me asking what made that tool feel more well defined than age? age has a stable spec [1] and an alternative implementation in Rust [2] based on the spec with extensive interop tests. If that’s just not visible, I’d be interested in how to fix that appearance, too! [0]: https://words.filippo.io/restic-cryptography/ [1]: https://age-encryption.org/v1 [2]: https://github.com/str4d/rage
In Ask HN: CLI Tool for File Encryption?
I'd generally look at anything like this as a code smell. If you're looking for simple file encryption in Rust, and you'd consider doing something as bespoke as this, just use `rage` (and its `age` crate). As a bonus, you get interop with Go (the reference implementation of age is in Go). https://github.com/str4d/rage Having said this, I want to put a word in for a design change I think all of these tools should consider: don't accept user-provided passphrases by default. Instead, generate passphrases for the user, with a wordlist and entropy target. Encrypting programs can still accept a (bad) passphrase with an option! But it shouldn't be the default behavior.
In How to securely encrypt a file with an insecure password in Rust
As yepguy mentioned AGE is simpler. I can also mention few things: - It works smoothly with SSH keys (generated from ssh-keygen), which are perfectly recognized by possibly any developer. - No need for external client, such as GpgWin/Kleopatra for Windows. - Embed-able in Rust[0] and Go[1] (there are libraries), no need to call `gpg --decrypt ...` from the command line. - Encrypted files by pass and keys are smaller. I guess it is thanks to ecliptic-curve encryption. [0]: https://github.com/str4d/rage [1]: https://github.com/FiloSottile/age
In Clever uses of pass, the Unix password manager
This whole thread is off-topic (talking about AEAD in a post about signing), but: You can use age's AEAD encryption with Yubikeys. Yubikeys can do ECDHE in PIV mode. I wrote https://github.com/tv42/yubage as a subprocess plugin to https://github.com/str4d/rage (and hopefully https://github.com/FiloSottile/age once they think plugins are stable in enough to go in the reference implementation). The rage author also wrote their https://github.com/str4d/age-plugin-yubikey
In Sign arbitrary data with your SSH keys

Showing the 15 most recent of 22 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.