Parent: #137
Goal
Expose the stable C ABI accurately in the sys crate with the least maintenance burden.
Scope
- Choose committed declarations or generation from the installed header based on reproducibility
- Match calling convention, integer widths, and opaque types
- Keep generated output reviewable if generation is used
Non-goals
- Binding C++ headers
- Hand-maintaining duplicate semantic APIs
- Exposing internal symbols
Acceptance criteria
- Rust declarations match C sizes and function signatures.
- The sys crate links and calls the ABI version query.
- Invalid layout assumptions fail in tests.
Verification
Run cross-language size assertions and a sys-level create/destroy smoke test.
Parent: #137
Goal
Expose the stable C ABI accurately in the sys crate with the least maintenance burden.
Scope
Non-goals
Acceptance criteria
Verification
Run cross-language size assertions and a sys-level create/destroy smoke test.