asv-tachyon
Modern web UI for airspeed velocity results.
ASV’s built-in site is still jQuery + Flot + Bootstrap 3. asv-tachyon is a
drop-in shell over the same static data that asv publish already writes
(index.json, graphs/**, regressions.json). No server-side app, no new
result format, no second benchmark type.
Overview — sparkline tiles over published ASV graphs
Gallery
| Compare (spyglass-style ratios) | Inventory (SBOM-style env lock) |
|---|---|
| Env or revision pairs · Before / After / Ratio · factor gate | added · removed · version-bumped · drop result JSON files |
| Tool | Job |
|---|---|
| asv | run benchmarks, write results, asv publish data |
| asv-tachyon | modern UI over that published tree |
| asv-spyglass | CLI compare + SBOM-style env-diff on result files |
| asv-perch | PR comment tables (CI) |
| asv_bench_tachyon | sample_* metric plugin (separate package) |
Install
pip install asv-tachyon
# or from a checkout after building the UI once
cd web && npm install && npm run build && cd ..
pip install -e .
Usage
asv run
asv publish
asv-tachyon serve .asv/html --open
Or replace the legacy index.html in place (keeps all graph JSON):
asv publish
asv-tachyon install .asv/html
asv-tachyon serve .asv/html
Demo without a project:
asv-tachyon serve fixtures/sample_site --open
What you get
- Overview — virtualized sparkline atlas, type/machine filter chips with counts, only-regressed filter, light/dark themes
- Explore — uPlot with CI bands, brush zoom, dual-cursor delta, tag
markers, commit tooltips (
commits.json), distribution violin/strip when samples exist, Report subview, multi-machine overlay, profile link (profiles.json) - Heatmap — last-N revision ratios ("what regressed"); click opens Explore
- Grid — multi-param summary table at latest revision
- Multiples — small-multiples sparkline wall
- Compare — multi-env compare-many columns from
graph_param_list, or revision pairs (same factor semantics asasv compare/ asv-spyglass) - Regressions —
regressions.jsontable with factor threshold + mute list (localStoragekeyasv-tachyon-mute) - Inventory — SBOM-style env lock diffs (added / removed / version-bumped)
- Copy deep link — copies
location.hrefincluding hash filters - Print / PDF — print CSS for Compare / Inventory / Explore
- Throughput / higher-is-better when
typeistrack, unit containsops, orless_is_better: falsein benchmark meta - Self-hosted fonts (offline-safe; no Google Fonts CDN)
- Same data contract as the stock ASV site — see
docs/source/data-contract.rst for
index.json+graphs/**+regressions.jsonshapes
Optional sidecars (static)
| File | Role |
|---|---|
commits.json |
{ "<fullhash>": "subject" } or { "by_revision": { "12": "msg" } } for chart tooltips |
profiles.json |
{ "paths": { "<bench>@<rev>": "profiles/foo.html" } } — Explore "Open profile" |
| Extended graph points | [rev, { "v", "lo"?, "hi"?, "samples"? }] for CI bands + distribution |
samples/<same path as graph> |
sibling { "revision": [samples...] } if not inlined |
Adapters
Import foreign benchmark JSON into a minimal ASV html tree:
python adapters/criterion_to_asv.py path/to/target/criterion -o asv_html
python adapters/pytest_benchmark_to_asv.py bench.json -o asv_html
asv-tachyon serve asv_html --open
CI template
See docs/workflows/asv-studio.yml for a
commented GitHub Actions outline: asv publish → asv-tachyon install →
Pages; PR path with asv-perch / asv-spyglass; local spyglass recipe.
Development
# terminal 1: static data
asv-tachyon serve fixtures/sample_site -p 8765
# terminal 2: vite (optional hot reload)
cd web && npm install && npm run dev
Docs site (Sphinx + Shibuya):
pip install -e '.[docs]'
sphinx-build -b html docs/source docs/build/html
License
MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file asv_tachyon-0.5.2.tar.gz.
File metadata
- Download URL: asv_tachyon-0.5.2.tar.gz
- Upload date:
- Size: 6.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdd30296c456260e0f4049dc40b131714681d77b76c63eea5a11bfd84b43c0dd
|
|
| MD5 |
c8f4204b9fe50dfeb48c4484890f9eb2
|
|
| BLAKE2b-256 |
2157fdb6636797dd1044244b4c6fbe448ed94f49cde51e8227c3d21ca4edf37c
|
File details
Details for the file asv_tachyon-0.5.2-py3-none-any.whl.
File metadata
- Download URL: asv_tachyon-0.5.2-py3-none-any.whl
- Upload date:
- Size: 702.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4757b3f9cd762c4978eed9584642b514ae121ee49f972939d1ee565b6b990ea
|
|
| MD5 |
8f673d4794bf08bd49a4ad8bb0fec4de
|
|
| BLAKE2b-256 |
9e572cb23a36493a6426a7c54aecfd4233602feed135665cc13bdc196716f250
|