woodruffw
pyrage
Rust

Python bindings for rage (age in Rust)

Last updated Jul 4, 2026
88
Stars
8
Forks
1
Issues
+1
Stars/day
Attention Score
42
Language breakdown
No language data available.
โ–ธ Files click to expand
README

pyrage ======

CI PyPI version PyPI Downloads

Python bindings for the Rust implementation of age.

Index

Installation

You can install pyrage with pip:

$ python -m pip install pyrage

PEP 561-style type stubs are also available:

$ python -m pip install pyrage-stubs

See the development instructions below for manual installations.

Usage

Identity generation (x25519 only)

from pyrage import x25519

ident = x25519.Identity.generate()

returns the public key

ident.to_public()

returns the private key

str(ident)

Identity-based encryption and decryption

from pyrage import encrypt, decrypt, ssh, x25519

load some identities

alice = x25519.Identity.from_str("AGE-SECRET-KEY-...") bob = ssh.Identity.from_buffer(b"---BEGIN OPENSSH PRIVATE KEY----...")

load some recipients

carol = x25519.Recipient.from_str("age1z...") dave = ssh.Recipient.from_str("ssh-ed25519 ...")

encryption

encrypted = encrypt(b"bob can't be trusted", [carol, dave, alice.to_public()])

decryption

decrypted = decrypt(encrypted, [alice, bob])

Passphrase encryption and decryption

from pyrage import passphrase

encrypted = passphrase.encrypt(b"something secret", "my extremely secure password") decrypted = passphrase.decrypt(encrypted, "my extremely secure password")

Development

$ source env/bin/activate
$ make develop

Licensing

pyrage is released and distributed under the terms of the MIT License.

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท woodruffw/pyrage ยท Updated daily from GitHub