Architecture decisions
This directory records important architecture decisions for the CipherFS project.
ADR List
| ID | Title | Status | Date |
|---|---|---|---|
| 001 | Use redb instead of SQLite | Accepted | 2024 |
| 002 | XChaCha20-Poly1305 by default | Accepted; AES-256-GCM and ChaCha20-Poly1305 later added as optional content ciphers | 2024 |
| 003 | FastCDC instead of fixed chunking | Accepted; fixed chunking remains an option | 2024 |
| 003 | Separate sync from core | Accepted | 2026-01 |
| 004 | Algorithm agility | Accepted | 2026-01 |
Earlier vector-clock sync and small-file blob sharding decisions were superseded by per-device signed causal logs and uniform content references in the confirmed requirements (Chinese). ADRs record the context of each decision; the repository README describes current behavior.
ADR Template
# ADR-XXX: Title
## Status
Accepted / Deprecated / Pending
## Context
Why do we need to make this decision?
## Decision
We decided to...
## Considered Options
1. Option A
2. Option B
3. Option C
## Consequences
- Pros: ...
- Cons: ...