Summary
The public C API is declared in include/labios/labios.h, but the corresponding function definitions do not appear in src. This means documented C examples using labios_connect, labios_write, labios_read, async calls, wait calls, and cleanup functions will not link as-is.
References
- include/labios/labios.h, starting around line 64
- Docs reference these functions in README, getting started, SDK guide, and architecture docs
Impact
C and FFI consumers cannot use the advertised ABI without downstream shim code. This also affects Rust/Go/other language bindings that would rely on the C interface.
Suggested Fix
Add a C API implementation translation unit that wraps labios::Client, labios::Config, and labios::PendingIO, then include it in the labios target. Add at least one link-level test or C smoke example to verify the declared ABI is real.
Summary
The public C API is declared in include/labios/labios.h, but the corresponding function definitions do not appear in src. This means documented C examples using labios_connect, labios_write, labios_read, async calls, wait calls, and cleanup functions will not link as-is.
References
Impact
C and FFI consumers cannot use the advertised ABI without downstream shim code. This also affects Rust/Go/other language bindings that would rely on the C interface.
Suggested Fix
Add a C API implementation translation unit that wraps labios::Client, labios::Config, and labios::PendingIO, then include it in the labios target. Add at least one link-level test or C smoke example to verify the declared ABI is real.