# Release v0.1.0 - 2026-05-18

## Summary

Initial scaffold for `crypt-io`. Repository created on GitHub, standards in place, CI configured, ready for Phase 0.2.0 (AEAD foundation) implementation work.

This crate provides the symmetric crypto suite for the Hive DB stack: AEAD encryption (ChaCha20-Poly1305, AES-256-GCM), hashing (BLAKE3, SHA-2), MAC (HMAC, BLAKE3 keyed), and KDF (HKDF, Argon2id). Built on RustCrypto and BLAKE3 primitives, wrapped with a clean algorithm-agile API and REPS discipline.

## Added

### Repository structure
- `src/` with subdirectories for each module: `aead/`, `hash/`, `mac/`, `kdf/`, `stream/`
- `tests/`, `benches/`, `examples/`, `fuzz/`, `docs/`, `.dev/`, `.github/`
- `Cargo.toml` with MSRV 1.75, edition 2024, Apache-2.0 OR MIT
  - 5 keywords: encryption, cryptography, ciphers, crypto, hash
  - 5 categories: cryptography, authentication, algorithms, encoding, data-structures
  - Feature flags for AEAD (chacha20, aes-gcm), hashing (blake3, sha2), MAC (hmac, blake3), KDF (hkdf, argon2), stream
  - Convenience presets: preset-all, preset-minimal

### Naming conventions (locked in)
- **Main type: `Crypt`** - `Crypt::new()`, `crypt.encrypt(...)`
- **Algorithm enum: `Algorithm`** - `Algorithm::ChaCha20Poly1305`, `Algorithm::Aes256Gcm`
- **Hash module: `crypt_io::hash`** - free functions `hash::blake3(...)`, `hash::sha256(...)`
- **MAC module: `crypt_io::mac`** - free functions `mac::hmac_sha256(...)`
- **KDF module: `crypt_io::kdf`** - free functions `kdf::hkdf_sha256(...)`, `kdf::argon2_hash(...)`
- **Stream module: `crypt_io::stream`** - `StreamEncryptor`, `StreamDecryptor`

### Source scaffolding
- `src/lib.rs` with full REPS lint configuration
- `tests/smoke.rs`
- `benches/crypt_bench.rs` (placeholder)
- Canonical `REPS.md` at repo root
- Dual licensing: `LICENSE-APACHE` + `LICENSE-MIT`
- `README.md` with badges, design philosophy, scope clarity
- `CHANGELOG.md`

### Dependencies wired
- `mod-rand = "1"` for CSPRNG (nonces, salts, IVs)
- `error-forge = "1"` for error types
- RustCrypto + BLAKE3 primitives (feature-gated):
  - `chacha20poly1305 = "0.10"` (default)
  - `aes-gcm = "0.10"` (feature-gated)
  - `blake3 = "1"` (default)
  - `sha2 = "0.10"` (feature-gated)
  - `hmac = "0.12"`, `hkdf = "0.12"` (feature-gated)
  - `argon2 = "0.5"` (feature-gated)

### .dev framework
- `.dev/PROMPT.md` - project context, naming conventions, scope
- `.dev/DIRECTIVES.md` - crypto + REPS + API + dependency directives
- `.dev/ROADMAP.md` - 11-phase production roadmap (~2-3 weeks)
- `.dev/release/v0.1.0.md` - this file

### CI
- `.github/workflows/ci.yml` - cross-platform (Linux/macOS/Windows × stable + MSRV 1.75)

## Design decisions locked in

- **No reimplementation.** Primitives come from RustCrypto + BLAKE3. We wrap, we don't replace.
- **Algorithm agility.** Same API works for ChaCha20-Poly1305 (default) and AES-256-GCM.
- **No random/UUID reimplementation.** `mod-rand` handles CSPRNG. `id-forge` handles UUIDs.
- **No direct `key-vault` dependency.** Consumer (Hive Core) wires them together. Single responsibility.
- **Post-quantum-safe defaults.** ChaCha20-Poly1305 at 256 bits is PQ-safe for symmetric crypto.
- **Out of scope:** asymmetric (RSA, ECDSA, Ed25519), PGP/GPG, TLS, password managers, identity.

## Repository setup

- GitHub: https://github.com/jamesgober/crypt-io
- Topics: rust, reps, encryption, cryptography, ciphers, crypto, hash, aead, chacha20, blake3, argon2
- Default branch: main
- License: Apache-2.0 OR MIT
- Visibility: PUBLIC

## Next

Phase 0.2.0 - AEAD foundation with ChaCha20-Poly1305. See `.dev/ROADMAP.md`.

**Estimated time to 1.0: 2-3 focused weeks.**