CheckOps
Divan
Divan is an Apache-2.0 Rust benchmarking library offering "comfy" benchmarking with a simple attribute API, multiple cases per benchmark and readable tabular output of fastest, slowest, median and mean times.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Divan provides comfy benchmarking for Rust projects. You add it to Cargo.toml, create a benchmarks file such as benches/example.rs and register functions with an attribute, optionally benchmarking them over multiple cases (for example several input sizes).
Output is a readable table showing fastest, slowest, median and mean timings per case. Divan 0.1.21 requires Rust 1.80 or later. It is a lighter-weight alternative to Criterion.rs for teams that want quick, readable numbers.
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 nvzqz/divan on GitHub under the Apache-2.0 licence, with about 1,500 stars; the most recent commit was on 19 July 2026.
Features
- Attribute API:
#[divan::bench]registration. - Multiple cases: Benchmark across arguments.
- Tabular output: Fastest, slowest, median and mean.
- Lightweight: Simple setup.
Pros
- 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 19 July 2026.
Cons
- Pre-1.0: API may still change.
- Guide in progress: Documentation still being written.
Usage and Links (Example)
[dev-dependencies]
divan = "0.1"
[[bench]]
name = "example"
harness = false
fn main() { divan::main(); }
#[divan::bench(args = [1, 2, 4, 8, 16, 32])]
fn fibonacci(n: u64) -> u64 { if n <= 1 { 1 } else { fibonacci(n - 2) + fibonacci(n - 1) } }
Resources:
Pricing
Divan is free and open source under the Apache-2.0 licence.
Recommended for?
- Rust developers wanting quick, readable benchmarks.
Conclusion
Divan makes Rust benchmarking pleasant.
Use Criterion.rs when you need its statistical reports.
On CheckOps, Divan is filed under the Performance & load and Unit testing stages. Related tools listed here include cargo-nextest, hyperfine, BenchmarkDotNet, JMH, proptest and cargo-mutants. Which one fits best depends mostly on your stack, your team’s size and skills, and whether you prefer to run tools yourself or pay for a managed service. This page reflects the official website, documentation and repository as they stood on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Divan 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 Divan
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 Divan
BBenchmarkDotNetBenchmarkDotNet is the MIT-licensed .NET library for turning methods into reliable, reproducible micro-benchmarks with statistical analysis, diagnosers and exportable reports.Compare with Divan
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 Divan
Pproptestproptest is a Hypothesis-inspired property-based testing framework for Rust, with composable strategies, automatic shrinking and persisted regression files.Compare with Divan
Ccargo-mutantscargo-mutants is an MIT-licensed mutation testing tool for Rust that injects bugs into your code and reports which ones your tests miss, with nextest support, sharding and diff-based runs.Compare with Divan