asv-runner
Core Python benchmark code for ASV
Decision gist · record as of 2026-08-14
Yes, if you are using ASV for benchmarking or building custom benchmark infrastructure. Install it as a dependency of asv or directly if you need a lightweight, zero-external-dependency benchmark runner. The active maintenance, permissive license, and broad Python version support make it reliable. No known vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.7 or later; designed as a core library for ASV, not typically used standalone.
- Low install friction with a single runtime dependency (importlib-metadata).
- Active maintenance with a release 10 days old and recent commits.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you include the license notice.
last release 2026-08-04 (10 days) · last repo commit 2026-08-04 · 6 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 602,930 downloads/mo, #5,813 on PyPI
Alternatives
Verify before relying
pip install asv-runner
from asv_runner.benchmarks.mark import benchmark
@benchmark
def time_example():
pass- Whether this package is intended for direct use or primarily as a dependency of the main asv package
- What specific benchmark execution capabilities are provided beyond the decorator interface
- Concrete examples of benchmark discovery and execution mechanics
What it is and what it does
asv-runner is the execution engine for the ASV benchmarking framework. It provides the core Python code that actually runs performance benchmarks, measures their execution time, and collects results. The package is intentionally minimal—it has no external dependencies beyond importlib-metadata and is designed to work across Python 3.7 and later, making it a stable foundation for benchmark infrastructure.
This is a specialized tool: it's the machinery that sits inside ASV to handle benchmark discovery, execution, and timing. Most users will encounter it indirectly through the main asv package. It's useful if you're building custom benchmarking infrastructure, extending ASV's capabilities, or need a lightweight, dependency-free benchmark runner for embedded or constrained environments.
Use it for
- Run performance benchmarks as part of continuous integration to track code speed regressions over time
- Measure and compare execution time of different implementations or algorithms in your codebase
- Build custom benchmarking tools or frameworks that need a stable, minimal-dependency benchmark executor
- Profile code performance across multiple Python versions in a single test suite
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are using ASV for benchmarking or building custom benchmark infrastructure.
Install it as a dependency of asv or directly if you need a lightweight, zero-external-dependency benchmark runner. The active maintenance, permissive license, and broad Python version support make it reliable. No known vulnerabilities.
Install
asv-runner on PyPI
Before you install
Low install friction with a single runtime dependency (importlib-metadata). Active maintenance with a release 10 days old and recent commits. Marked as Beta but supports Python 3.7 through 3.12.
Requires Python 3.7 or later; designed as a core library for ASV, not typically used standalone.
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you include the license notice.
Quickstart
pip install asv-runner
from asv_runner.benchmarks.mark import benchmark
@benchmark
def time_example():
pass
Verify before relying
- Whether this package is intended for direct use or primarily as a dependency of the main asv package
- What specific benchmark execution capabilities are provided beyond the decorator interface
- Concrete examples of benchmark discovery and execution mechanics
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageimportlib-metadata |
| Maintenance | Actively maintained 10 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 602,930 / month, #5,813 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaLicense :: OSI Approved :: BSD LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: System :: Benchmark |
Evidence: asv_runner-0.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “python benchmark runner”
- asv-runnerProvides core Python benchmark execution code for the ASV…
- pyperfpyperf is a toolkit for writing, running, and analyzing Python…
- pytest-benchmarkA pytest fixture that benchmarks Python functions by running them in…
Give your agent the search over MCP, or paste the wish link into any chat.
More System packages
Provides a platform-independent file locking mechanism to coordinate access to files across processes and threads.
Distro provides a reliable, machine-readable API to query the Linux or BSD distribution name, version, codename, and other OS platform details, replacing Python's deprecated `platform.linux_distribution` function.
Install it if you need to detect or report the Linux/BSD distribution your code runs on.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Provides asynchronous file I/O operations for asyncio programs, with automatic selection of the best available backend (io_uring, libaio, thread-based, or pure Python) depending on your system.
Portalocker provides cross-platform file locking with support for exclusive and shared locks, plus Redis-based distributed locks and process-aware PID file locking.
Install it if you need file or process coordination; the optional extras (pywin32, redis) are only required for specific lock types.
See also asv · codeflash-benchmark · pytest-benchmark · terminal-bench · msbench-utils · ansible-runner · nemo-evaluator · google-benchmark · pytest-codspeed · coverage