CheckOps
Criterion.rs
Criterion.rs is a statistics-driven Rust microbenchmarking library, a port of Haskell's Criterion, that stores results between runs to detect regressions and measure optimisations; development has moved to a new criterion-rs organisation.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Criterion.rs is a statistics-driven micro-benchmarking tool for Rust, ported from Haskell’s Criterion library. Benchmarks collect and store statistical information from run to run and can automatically detect performance regressions as well as measure optimisations.
It is one of the most widely used Rust benchmarking libraries and the format many tools understand; for example, Bencher has a dedicated rust_criterion adapter. The original repository notes that, because the original maintainer has been unavailable for extended periods, active development has moved to a new Criterion-rs organisation, where new PRs and issues should go. The book documents configuration, including cargo-criterion.
Whatever tool you choose, benchmark results are only useful if they are stable. Pin the hardware or runner, run enough iterations to make variance visible, and treat a single noisy result as a reason to rerun, not to block a merge.
The source code is at bheisler/criterion.rs on GitHub under the Apache-2.0 licence, with about 5,500 stars; the most recent commit was on 29 November 2025.
Features
- Statistical analysis: Statistics collected and stored run to run.
- Regression detection: Compares with saved baselines.
- Optimisation measurement: Quantifies improvements.
- cargo bench integration: Standard Rust workflow.
Pros
- Ecosystem support: Many tools parse its output.
- Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 29 November 2025.
- Community: About 5,500 GitHub stars.
Cons
- Maintenance transition: Development moved to a new organisation.
- Micro-benchmarks only: Not for whole-system load.
Usage and Links (Example)
cargo add --dev criterion
[[bench]]
name = "my_benchmark"
harness = false
cargo bench
Resources:
Pricing
Criterion.rs is free and open source under the Apache-2.0 licence.
Recommended for?
- Rust developers needing rigorous microbenchmarks.
Conclusion
Criterion.rs remains a standard choice for Rust benchmarking.
Follow the new organisation for future releases.
On CheckOps, Criterion.rs is filed under the Performance & load and Unit testing stages. Related tools listed here include cargo-nextest, hyperfine, BenchmarkDotNet, JMH, proptest and cargo-llvm-cov. A short trial on a real project, with your own code, data and pipeline, is usually the fastest way to choose between them, because fit matters more than feature lists. Facts here come from the official site, documentation and repository, checked on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Criterion.rs side by side.
Ccargo-nextestcargo-nextest is an Apache-2.0 next-generation test runner for Rust, up to 3x faster than cargo test per its site, with per-test process isolation, retries, partitioning, JUnit output and a filterset DSL.Compare with Criterion.rs
Hhyperfinehyperfine is an Apache-2.0 command-line benchmarking tool that runs shell commands repeatedly with warm-up, statistical analysis and exports, ideal for comparing CLIs and builds.Compare with Criterion.rs
BBenchmarkDotNetBenchmarkDotNet is the MIT-licensed .NET library for turning methods into reliable, reproducible micro-benchmarks with statistical analysis, diagnosers and exportable reports.Compare with Criterion.rs
JJMHJMH (Java Microbenchmark Harness) is OpenJDK's GPL-2.0 harness for building, running and analysing nano, micro, milli and macro benchmarks in Java and other JVM languages.Compare with Criterion.rs
Pproptestproptest is a Hypothesis-inspired property-based testing framework for Rust, with composable strategies, automatic shrinking and persisted regression files.Compare with Criterion.rs
Ccargo-llvm-covcargo-llvm-cov is a cargo subcommand (Apache-2.0 or MIT) for LLVM source-based code coverage in Rust, supporting cargo test, cargo run and cargo nextest with precise line and region coverage.Compare with Criterion.rs