libxml-rs 0.1.0-alpha.4

Phase 3: I/O, encoding, URI, catalog, serialization, HTML. Native-Rust forensic reimplementation of libxml2+libxslt with C ABI drop-in replacement. 357 tests passing, full encoding subsystem, URI parser, OASIS catalog, HTML parser/serializer, tree serialization, custom I/O buffers.
Documentation
# Parity Matrix

Generated from `PARITY_MATRIX.json` (ยง70). Last updated: 2026-08-20.

## API Completeness

### libxml2 2.15.3

| Surface | Headers | DSO | Both | H-only | DSO-only | Status |
|---------|---------|-----|------|--------|----------|--------|
| Functions | 1403 | 1658 | **1344** | 53 | 290 | ๐ŸŸข 81% |
| Globals | 17 | 89 | **17** | 0 | 72 | ๐ŸŸข 100% of captured |
| System leaks | โ€” | โ€” | โ€” | **0** | โ€” | โœ… Clean |
| Internal `__xml*` | 6 | โ€” | โ€” | 6 | โ€” | โœ… Classified |
| SAX1 callbacks | โ€” | 24 | โ€” | โ€” | 24 | โœ… Classified |
| Typedefs | 312 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Records (struct/union) | 76 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Enums | 39 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Enumerators | 1131 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Callbacks | 86 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Headers processed | 45 | โ€” | โ€” | โ€” | โ€” | โœ… Complete |

### libxslt 1.1.45

| Surface | Headers | DSO | Both | H-only | DSO-only | Status |
|---------|---------|-----|------|--------|----------|--------|
| Functions | 231 | 232 | **225** | 6 | 7 | ๐ŸŸข 97% |
| Globals | 12 | 39 | **12** | 0 | 27 | ๐ŸŸข 100% of captured |
| System leaks | โ€” | โ€” | โ€” | **0** | โ€” | โœ… Clean |
| Typedefs | 63 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Records | 16 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Enums | 7 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Enumerators | 65 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Callbacks | 17 | โ€” | โ€” | โ€” | โ€” | ๐Ÿ“‹ Cataloged |
| Headers processed | 23 | โ€” | โ€” | โ€” | โ€” | โœ… Complete |

## Tools Status

| Tool | Status | Notes |
|------|--------|-------|
| `manifest.py` | โœ… Working | 183 libxml2 + 92 libxslt releases cataloged |
| `profileconfig.py` | โœ… Working | Generates xmlversion.h/xsltconfig.h for distro profile |
| `apiatlas.py` | โœ… Working | Clang-AST-based public API extractor. Fixes applied: (1) origin resolution uses loc.file/loc.includedFrom instead of buggy #line mapping, (2) XML_TREE_INTERNALS define for tree.h circular dependency, (3) system function name denylist |
| `symbols.py` | โœ… Working | ABI ground-truth comparison via readelf. Classifies SAX1 callbacks, internal __xml* functions, system leaks |
| `delta.py` | โœ… Built | Ready for multi-version API diffing |
| `court runner` | โœ… Built | Ready for differential testing (needs Docker oracle) |

## Infrastructure Status

| Component | Status | Notes |
|-----------|--------|-------|
| Docker oracle | ๐ŸŸก Scaffolded | Dockerfile and build script created, not yet built |
| Court receipts | ๐ŸŸก Scaffolded | Schema and runner created, no cases executed yet |
| Historical API matrix | ๐ŸŸก Partial | Only 2.15.3 + 1.1.45 snapshots taken |
| Historical deltas | ๐Ÿ”ด Not started | Need at least 2 versions per project |
| Downstream consumers | ๐Ÿ”ด Not started | |