Expand description
C ABI compatibility layer (§4, §14).
This module implements the external C-compatible world:
- Types, structs, constants matching upstream layout
- C ABI exports (libxml2.so.2, libxslt.so.1)
- Callbacks, allocator hooks, ownership membrane
- Versioning macros and runtime reporting
§Architecture
external C-compatible world
↕
ABI / ownership membrane ← this module
↕
safe internal Rust semantics (src/xml, src/xslt, ...)§Phase 0 status
This module is scaffolded. The ABI membrane will be constructed in Phase 1
(Compatibility Skeleton, §85 Phase 1) after the archaeological atlas is
complete. See atlas/PARITY_MATRIX.md for current API completeness metrics.
Modules§
- allocator
- C ABI allocator compatibility — xmlMemSetup, xmlMemGet, xmlMalloc, xmlFree, etc. (§58).
- callbacks
- C ABI callback function type definitions — matching upstream callback signatures (§14, §20).
- constants
- C ABI constants — supplementary ABI constants not defined as enum variants or flag bits in
types.rs(§14). - exports_
xml2 - C ABI exports for libxml2.so.2 — no_mangle extern “C” functions (§1, §16).
- exports_
xslt - C ABI exports for libxslt.so.1 — no_mangle extern “C” functions (§1, §16).
- ownership
- C ABI ownership contracts — who frees what, when, and under what conditions (§18).
- structs
- C ABI struct definitions — exact upstream layout (§14, §17).
- types
- C ABI type definitions — matching upstream libxml2/libxslt (§14).
- versioning
- C ABI versioning — LIBXML2_VERSION, LIBXSLT_VERSION, runtime version APIs (§83, §84).