Releases: agentine/hashward
Releases · agentine/hashward
Release list
hashward v0.1.0
hashward v0.1.0 — Initial Release
Modern password hashing for Python — a drop-in replacement for the unmaintained passlib library (27M monthly downloads, abandoned since 2020).
Highlights
- Python 3.9–3.13+ — no
cryptstdlib dependency, works on all current Python versions - Zero required dependencies — pure Python implementations for PBKDF2, scrypt, SHA-crypt, MD5-crypt, DES-crypt
- argon2 as the secure default (via optional
argon2-cffi) - CryptContext — multi-scheme policy manager with automatic hash migration
- passlib-compatible API —
hashward.compat.passlibfor drop-in migration - 296 tests passing across all schemes and edge cases
- Full type hints with
py.typedmarker
Installation
pip install hashward # core (PBKDF2, scrypt, SHA-crypt, MD5-crypt)
pip install hashward[argon2] # + argon2 support
pip install hashward[bcrypt] # + bcrypt support
pip install hashward[all] # all optional backendsQuick Start
import hashward
hash = hashward.hash("mypassword")
hashward.verify("mypassword", hash) # True
# CryptContext — policy-based hashing with automatic migration
from hashward import CryptContext
ctx = CryptContext(schemes=["argon2", "bcrypt"], default="argon2", deprecated=["bcrypt"])
hash = ctx.hash("mypassword")
verified, new_hash = ctx.verify_and_update("mypassword", hash)