Architecture
ChainAPI’s architecture is documented in doc/ChainAPI - Project Layout.md and PRD §8.
Key principles:
- Engine boundary —
libchainapi-enginehas no Qt UI dependency. Mechanically enforced via CMake link guards, CI grep checks, and pImpl public headers. - Layered C++ — domain → application → infrastructure, dependencies pointing inward only.
- Phase B option — the engine is constructable as an in-process library today and extractable to a separate process or rewritten in Rust later. Architectural guardrails make this a build-system change, not a rewrite.
Full content for this page is part of Phase 2 documentation.