Skip to content

abicheck v0.1.0

Choose a tag to compare

@napetrov napetrov released this 14 Mar 05:59
· 1368 commits to main since this release

First public release of abicheck — a modern, Python-native ABI compatibility checker for C/C++ shared libraries.

Highlights

  • Multi-tier detection: castxml (header AST) + ELF symbol table + DWARF debug info
  • 85 ChangeKinds across BREAKING / API_BREAK / COMPATIBLE severity tiers
  • 100% ABICC parity for 55 documented ABI break scenarios
  • ABICC drop-in CLI: accepts all major abi-compliance-checker flags
  • Policy system: built-in profiles (strict_abi, sdk_vendor, plugin_abi) + YAML overrides
  • COMPATIBLE_WITH_RISK verdict: deployment-risk changes (e.g. new GLIBC version requirements) reported separately from binary breaks
  • Reports: Markdown, JSON, SARIF, HTML

Installation

git clone https://github.com/napetrov/abicheck
pip install -e ".[dev]"
# also requires: apt install castxml

Quick start

abicheck dump libfoo.so.1 --version 1.0 -H include/foo.h -o old.json
abicheck dump libfoo.so.2 --version 2.0 -H include/foo.h -o new.json
abicheck compare old.json new.json

See CHANGELOG.md for the full list of features and changes.