Choosing current APIs¶
This guide describes the current 0.2 development implementation. The authoritative Project status records evidence and limits; specifications describe both current mechanisms and future targets. Requirement cards marked Accepted record a design decision, not a passing implementation test.
Goal |
Available now |
Still planned or limited |
|---|---|---|
Start and coordinate threads |
Static storage, priorities, start, sleep, join/detach, cooperative cancellation |
Isolated partitions, budgets, restart, SMP |
Protect or signal work |
Mutexes, semaphores, per-thread notifications |
Event groups, condition variables, barriers |
Transfer payloads |
Application-owned data with an explicit synchronization protocol |
Message queues, pipes, buffer pools |
Run periodic work |
A thread using absolute sleep deadlines |
Software timers and system work queues |
Wait on several readiness sources |
Semaphore binding plus notification bits and rechecking |
General object bindings, unbind, restart-safe target lifetime |
Diagnose failures |
State/priority queries, optional stack estimates, synchronous trace and fault hooks |
Retained crash formats, CTF rings, full host tooling |
Develop without a board |
Native Linux/POSIX virtual time and conformance suite |
Physical-board timing, peripheral drivers and HIL evidence |
Deploy a controller platform |
Embedded kernel ports and QEMU configurations |
Complete board/peripheral/application integration and release qualification |
The public C API reference is extracted from actual headers. Some declarations depend on configuration or link to a broader requirement than the current subset implements. Missing services are not supplied by enabling a configuration flag or copying a signature from a specification. Use Configuration to select available features and the API’s @config/@ctx contract before using it.
The first user tutorials target native development: threads and periodic work, synchronization and notifications, and debugging. They avoid assuming a driver stack, an isolated profile or a released board support guarantee. Porting an application to a physical board requires its startup, console, clock, interrupt, stack and peripheral integration to be validated separately.