Amphimixis is an automated project intelligence and evaluation tool for performance and migration readiness. It helps inspect a project for existing infrastructure such as CI, tests, benchmarks, dependencies, and build scripts, then runs builds and collects performance data for further comparison.
Amphimixis simplifies migration readiness exploration and performance analysis by partially implementing our methodology.
Amphimixis uses
perffor profiling and can generate a cross‑table comparing two builds per CPU event.
The cross-table below was generated by running Amphimixis on a YAML project, comparing builds on RISC‑V and x86.
What does a cross-table contain? The cross-table displays gathered performance counter profiles (by CPU events for each function) of the two builds for performance comparison.
Why are there zeros in the cross‑table?
The two builds were executed on different architectures: 1_1_1 on RISC‑V and 2_2_2 on x86. Perf events like cache‑misses have different naming conventions or are not available on RISC‑V. That is why the first build shows zeros for those metrics, while the second build records actual numbers. The delta column highlights only the differences that appear in both builds, making it easy to spot architecture‑specific behaviour.
- Python 3.12 or later
- Linux
rsyncon each machine,sshpasson the machine that connects to remote hosts with passwordsperfandperf archiveon eachrun_machine- Target project must support CMake as the build system and Make or Ninja as the low-level runner
Installation commands for system dependencies are available in Troubleshooting → System Dependencies.
If you want to try Amphimixis right away, create a virtual environment, install the package from GitHub, and run the full pipeline on a target project:
python3 -m venv .venv
source .venv/bin/activate
pip install git+https://github.com/ebzych/amphimixis.git@stable
amixis init local
amixis run /path/to/project --config local.yml- Usage guide — installation options, workspace setup, all commands, perf events, SSH auth
- Config instruction — full
input.ymlschema reference - Troubleshooting — common issues and solutions
- Contributing guide — how to contribute, local checks, pull request guidelines
- Migration readiness exploring methodology — systematic process for evaluating cross-platform migration readiness
The repository is organized around a small CLI and several core modules:
- amphimixis/amixis/__main__.py is the CLI entry point
- amphimixis/core/analyzer.py inspects a target project
- amphimixis/core/builder.py runs configured builds
- amphimixis/core/profiler.py gathers execution and profiling data
- amphimixis/core/validator.py validates
input.yml - amphimixis/core/shell contains local and remote shell backends
- amphimixis/core/build_systems adapts build systems (CMake, Make, Ninja)
- docs contains user-facing documentation
Contributions are welcome. Before submitting a pull request, make sure local checks pass:
ci/runner.shSee CONTRIBUTING.md for details on bug reports, pull request guidelines, and test categories.
The project is distributed under the MIT License. This project includes dependencies under various licenses — see NOTICE.md and the third_party_licenses/ directory for details.

