Skip to main content

Module abi

Module abi 

Source
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).
data_globals
Exported C data globals — the classic libxml2/libxslt public variables (11.1-G data-ABI closure, residual R-000135).
exports_automata
exports_automata — family closure (11.1-I).
exports_buffer
C ABI exports for the buffer family — xmlBuf* / xmlBuffer* / xmlCharStr* (upstream buf.c, tree.c, xmlstring.c, 2.15.3).
exports_hash
exports_hash — family closure (11.1-I). Filled by workstream.
exports_html
exports_html — HTML C ABI family (HTMLparser.h, HTMLtree.h, SAX2.h).
exports_misc
exports_misc — family closure (11.1-I).
exports_nano
exports_nano — xmlNanoFTP*/xmlNanoHTTP*/xmlIOFTP*/xmlIOHTTP* C ABI family (§11.1-I).
exports_parser
exports_parser — C ABI exports for the XML parser family (§11.1-I).
exports_parserint
exports_parserint — xmlParse* internal parser entry points (§11.1-I).
exports_relaxng
exports_relaxng — RELAX NG C ABI exports (family closure 11.1-I).
exports_schema
exports_schema — C ABI exports for the XML Schema family.
exports_shell
exports_shell — XML shell family C ABI exports (11.1-I shell closure).
exports_string
exports_string — xmlStr*/xmlUTF8*/xmlString* C ABI family (§11.1-I).
exports_tree
exports_tree — tree construction/editing/content/property/namespace/free family closure (11.1-I).
exports_treedump
exports_treedump — copy/dump/serialize/debug/nodelist C ABI family (§11.1-I).
exports_uri
C ABI exports for the URI subsystem (uri.h) — family closure (11.1-I).
exports_xinclude
C ABI exports for the XInclude family — xmlXInclude* (upstream xinclude.h, 2.15.3).
exports_xml2
C ABI exports for libxml2.so.2 — no_mangle extern “C” functions (§1, §16).
exports_xptr
exports_xptr — the xmlXPtr* family of C ABI exports (family closure 11.1-I).
exports_xslt
C ABI exports for libxslt.so.1 — no_mangle extern “C” functions (§1, §16).
exports_xslt_apply
C ABI exports for libxslt.so.1 — the “apply” family (§16, Phase 8).
exports_xslt_avt
exports_xslt_avt — attribute value templates / namespace fixup / utility family closure.
exports_xslt_compile
C ABI exports for libxslt.so.1 — the “compile” family (§16, Phase 8).
exports_xslt_exec
C ABI exports for libxslt.so.1 — the “exec” family (§16, Phase 8).
exports_xslt_ext
C ABI exports for libxslt.so.1 — the “ext” family (§16, Phase 8).
exports_xslt_functions
C ABI exports for libxslt.so.1 — the “functions” (XPath extension functions) family (§16, Phase 8).
exports_xslt_internals
exports_xslt_internals — family closure (11.1-I). Filled by workstream.
exports_xslt_util
C ABI exports for libxslt.so.1 — the “util” family (§16, Phase 8).
exports_xslt_vars
C ABI exports for libxslt.so.1 — the “vars” family (§16, Phase 8).
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).
ucs_blocks
Generated Unicode block classification functions (upstream xmlunicode.c).
ucs_cat
Generated Unicode category classification functions (upstream xmlunicode.c).
versioning
C ABI versioning — LIBXML2_VERSION, LIBXSLT_VERSION, runtime version APIs (§83, §84).