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.
Metadata
Release files for asv-tachyon 0.5.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| asv_tachyon-0.5.8.tar.gz | 6.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| asv_tachyon-0.5.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.1 MB
Release files / asv_tachyon-0.5.8.tar.gz
| Download URL | asv_tachyon-0.5.8.tar.gz |
|---|---|
| Size | 6.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
36c42b522a03b43e112b238c375aa993ea8bc91dd06ca56212c0440db1dbbf57
|
|
BLAKE2b-256 checksum How to use checksums |
b4095e5d7181df956a88272af7ba88067d0c95eff61087abffe94dff6f2fecbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|
Release files / asv_tachyon-0.5.8-py3-none-any.whl
| Download URL | asv_tachyon-0.5.8-py3-none-any.whl |
|---|---|
| Size | 724.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a06641c1af3ea74dec38072a8195186d178f3aaeee1ca4a618328b540cd500fe
|
|
BLAKE2b-256 checksum How to use checksums |
9a1bb22defed43204f097bacb6ec714ce8a1970d4e0ff4a086d0a1663bf497e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|