JustAPI documents significant architectural decisions as Architecture Decision Records (ADRs) in DECISIONS.md.
| ADR |
Title |
Key Point |
| 001 |
Crate defaults for v1.0 |
Workspace structure and crate responsibilities |
| 005 |
Rust edition: 2021 |
Deliberately stayed on 2021 edition |
| 008 |
GIL strategy |
Dedicated Python worker thread (later superseded) |
| 014 |
Project rename: Hyperion → JustAPI |
Rebranding rationale |
| 021 |
GIL-free architecture |
Removed dedicated Python worker thread |
| ADR |
Title |
Key Point |
| 006 |
Benchmark tooling: oha over wrk |
Chose oha for consistency |
| 020 |
Performance target |
Beat FastAPI on every benchmark |
| 024 |
Bucket-based latency histograms |
Custom over HDR Histogram |
| 047 |
Remove per-request Python↔Rust boundary |
Native fast path |
| 056 |
Rust-native route compiler |
Skip GIL on common routes |
| 064 |
Route-lookup cache |
Memoization for repeated lookups |
| ADR |
Title |
Key Point |
| 018 |
Security strategy |
SAST in CI, fuzzing, OWASP baseline |
| 050 |
Secure-by-default CORS |
Opt-in security headers |
| 052 |
Single error-response contract |
{"detail": ...} format |
| 053 |
Panic model: abort + supervisor |
Not catch_unwind |
| 055 |
Configurable max body size |
413 on overflow |
| ADR |
Title |
Key Point |
| 016 |
Database strategy |
sqlx with compile-time checks |
| 058 |
Eager/early DB pool connect |
Removes app.db is None footgun |
| 069 |
Fix DB-backed handler deadlock |
WAL hang fix |
| 074 |
DB-startup + response-correctness |
Fixed normalize_db_url |
| ADR |
Title |
Key Point |
| 030 |
Native inference engine |
Candle, not torch delegation |
| 036 |
Disaggregated prefill/decode |
Separate prefill and decode resources |
| 068 |
Freeze AI/inference work |
Until 2.0.8 release |
All 75+ ADRs are documented in DECISIONS.md at the repository root.