# Architecture Decision Records (ADR)

This directory records important architecture decisions for the CipherFS project.

## ADR List

| ID | Title | Status | Date |
|----|-------|--------|------|
| [001](001-database-redb.md) | Use redb instead of SQLite | Accepted | 2024 |
| [002](002-encryption-xchacha20.md) | XChaCha20-Poly1305 by default | Accepted; AES-256-GCM and ChaCha20-Poly1305 later added as optional content ciphers | 2024 |
| [003](003-chunking-fastcdc.md) | FastCDC instead of fixed chunking | Accepted; fixed chunking remains an option | 2024 |
| [003](003-sync-refactoring.md) | Separate sync from core | Accepted | 2026-01 |
| [004](004-algorithm-agility.md) | 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

```markdown
# 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: ...
```
