Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Architecture Decision Records

One numbered Markdown file per decision, in the lightweight Michael Nygard format. Numbering is sequential and never reused or renumbered. Template: template.md.

Open an ADR when a choice affects the public surface or compatibility, when two reasonable options exist and the rationale is non-obvious, when a design pattern is adopted, or when superseding a prior decision. Do not open one for routine implementation details or trivially reversible choices.

Status transitions: ProposedAccepted → (Superseded by ADR-XXXX | Deprecated).

Index

ADR Title Status
0001 Record architecture decisions Accepted
0002 Adopt the cross-language source layout Accepted
0003 Automate PR metadata and enable a project board Accepted
0004 Adopt a hybrid header-only + optional STATIC build model Accepted
0005 UniqueRef<T> non-null unique-ownership semantics Accepted
0006 HeapArray<T> as a fixed-size restriction over std::vector Accepted
0007 StackAllocator<Size> bump-arena semantics Accepted
0008 Adopt the Object Pool pattern for ObjectPool<T> Accepted
0009 Adopt flat (sorted-contiguous) associative containers Accepted
0010 FlatMap<Key, Value> constexpr support and construction strategy Accepted
0011 CircularBuffer<T> ring-buffer semantics Accepted
0012 StringFormatter compile-time format-string validation strategy Accepted
0013 Semaphore monitor-based implementation over mutex + condition variable Accepted
0014 ReaderWriterLock writer-preference policy over a monitor Accepted
0015 TaskFuture<T> lightweight promise/future design Accepted
0016 LockFreeQueue<T> bounded Vyukov MPMC design Accepted
0017 ThreadPool priority work pool design Accepted
0018 Stopwatch clock choice and accumulation semantics Accepted
0019 StackTrace compiled-tier capture with on-demand symbolization Accepted
0020 Logger asynchronous single-pump design with Strategy sinks Accepted
0021 CliParser typed variable-binding with a value-or-error boundary Accepted
0022 JsonParser non-allocating pull (SAX) event model over string views Accepted
0023 FileStream buffered OS-descriptor wrapper, single-direction, compiled tier Accepted
0024 BinarySerializer endianness-aware, header-only, span-based codec Accepted
0025 TcpSocket / TcpServer non-blocking sockets, poll-based readiness, compiled tier Accepted
0026 Freeze the 1.0 public API and enforce a warning-clean Doxygen build Accepted
0027 Benchmark suite on a dependency-free Stopwatch harness Accepted
0028 Line-coverage gate — gcovr in CI at ≥80%, OpenCppCoverage locally Accepted
0029 Library-wide error-handling policy (value-or-error vs exceptions) Accepted
0030 Distribution model & ABI-stability policy Accepted
0031 Fuzz-testing harnesses & non-cryptographic hash scoping Accepted