abi3audit is a command-line tool developed by Trail of Bits and now maintained by the Python Packaging Authority (PyPA). It scans Python wheels and shared objects for Application Binary Interface (ABI) violations and inconsistencies. Its purpose is to ensure that CPython extensions tagged as `abi3` actually comply with the stable ABI, thereby preventing potential crashes or memory corruption due to ABI mismatches. The library is currently at version 0.0.26 and receives frequent, minor releases, indicating active development.
pip install abi3auditVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates how to programmatically audit a PyPI package for ABI3 compliance using `abi3audit` via a subprocess call. The example audits 'numpy' and uses the `--verbose` flag for detailed output. It handles potential errors like `abi3audit` not being found or an audit failing.
Upgrade your Python environment to 3.10 or a later supported version (e.g., Python 3.11, 3.12, 3.13, 3.14). If Python 3.9 is required, you must use an older version of abi3audit, such as 0.0.25, and pin its version accordingly.
Always check the `requires_python` metadata and the release notes for abi3audit. For stability, explicitly pin the abi3audit version in your project (e.g., `abi3audit==0.0.25`) if you depend on a specific Python version that has had fluctuating support.
Whenever possible, audit entire wheels or PyPI packages (e.g., `abi3audit my_package.whl` or `abi3audit my-package`) rather than individual shared objects, as wheels contain the necessary metadata for accurate analysis.
Be aware of this limitation and combine `abi3audit` with other dynamic analysis tools if your C extensions utilize dynamic symbol loading.
Upgrade your Python environment to 3.9 or newer, or use an older version of abi3audit if Python 3.8 support is critical.
No dependency data recorded yet.