Eclipse ThreadX · Eclipse Foundation
Canon-C
A semantic standard library for C99 — written to be read, engineered to be proved.
Canon-C is a header-only vocabulary that sits above the RTOS kernel and below your application logic. The same discipline that makes it readable makes it verifiable.
The gap it closes
Every safety-critical C team rebuilds the same infrastructure. Canon-C is the shared, verifiable version of it.
Arena allocators, fixed-capacity collections, error-handling conventions, ownership patterns, contract checking — privately re-implemented and re-verified for every certification effort. Canon-C unifies them into one disciplined C99 standard library.
Strict layering · semantic depth
Six layers, organized by depth — not feature count.
Lower layers define unavoidable mechanics; higher layers build meaning on top. Each module is independently usable. The gradient runs the way the dependencies do.
core/primitives → core → semantics → data → algo → util · upward and circular dependencies are forbidden.
Built for the toolchain auditors already trust
Designed to support certification, on the standards that govern critical software.
Canon-C targets plain C99 with no compiler extensions required, is freestanding-safe in its core layers, and is designed to be verified with Frama-C, compiled with CompCert, and analyzed with aiT for WCET bounds — the certification evidence is reusable across efforts.
Get involved
Read it, build with it, contribute.
Source
GitHub organization ↗
The headers, tests, CI pipeline, and verification record. Header-only — clone and include.
Governance
Project page ↗
The Eclipse project home: proposal, committers, governance, and developer resources.
Discuss
Mailing list ↗
canon-c-dev — design discussion, feedback on the layering, and contribution coordination.