ABI Laboratory

Open Source

Free tools for all ...

This is a list of my open-source tools for analysis of backward binary compatibility and source compatibility for C/C++ and Java libraries, visualization of changes in the source code and generating of automated tests. All of them are shared on GitHub.

ToolDescriptionLicense
ABI Compliance Checker A tool for checking backward binary and source-level compatibility of a C/C++ library. The tool analyzes API and ABI changes that may break compatibility: changes in calling stack, v-table changes, removed symbols, renamed fields, etc. Read more... GPL / LGPL
ABI Tracker A tool to visualize ABI changes timeline of a C/C++ software library. This is a free implementation of the Linux Upstream Tracker project. Read more... GPL / LGPL
ABI Monitor A tool to monitor and build new versions of a software library. The tool is intended to be used with the ABI Tracker tool. Read more... GPL / LGPL
Upstream Tracker A project to monitor and verify compatibility of upstream API changes in C/C++ libraries. It's based on the ABI Monitor and ABI Tracker tools. Read more... GPL / LGPL
API Sanity Checker An automatic generator of basic unit tests for a C/C++ library. It is able to generate reasonable input data for parameters and compose simple ("sanity" or "shallow"-quality) test cases for every function in the API through the analysis of declarations in header files. The quality of generated tests allows to check absence of critical errors in simple use cases. Read more... GPL / LGPL
PkgDiff A tool for visualizing changes in Linux software packages (RPM, DEB, TAR.GZ, etc). Read more... GPL
Pkg-ABIDiff A tool for backward compatibility analysis of API/ABI interfaces in RPM/Deb Linux software packages. Read more... GPL / LGPL
ABI Dumper A tool to dump ABI of an ELF object containing DWARF debug info. The tool is intended to be used with ABI Compliance Checker tool for tracking ABI changes of a C/C++ library or kernel module. Read more... GPL / LGPL
Vtable Dumper A tool to list content of virtual tables in a C++ shared library. Read more... GPL / LGPL
Java API Compliance Checker A tool for checking backward binary and source-level compatibility of a Java library API. The tool analyzes API changes that may break compatibility: removed methods, removed class fields, added abstract methods, etc. Read more... GPL / LGPL
Java API Tracker A tool to visualize API changes timeline of a Java library. Read more... GPL / LGPL
Java API Monitor A tool to monitor new versions of a Java library. The tool is intended to be used with the Java API Tracker tool. Read more... GPL / LGPL
Upstream Tracker 4J A project to monitor and verify compatibility of upstream API changes in Java libraries. It's based on the Java API Monitor and API Tracker tools. Read more... GPL / LGPL