diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index d4f3d417..d7f39e49 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -17,7 +17,7 @@ jobs:
rust:
- stable
- beta
- - 1.56.1 # MSRV
+ - 1.57 # MSRV
steps:
- uses: actions/checkout@v2
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 89f4d80a..053bda9a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,7 +20,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- HTML report hidden behind non-default feature flag: 'html_reports'
- Standalone support (ie without cargo-criterion) feature flag: 'cargo_bench_support'
-- MSRV bumped to 1.56.1
+- MSRV bumped to 1.57
- `rayon` and `plotters` are optional (and default) dependencies.
- Status messages ('warming up', 'analyzing', etc) are printed to stderr, benchmark results are printed to stdout.
- Accept subsecond durations for `--warm-up-time`, `--measurement-time` and `--profile-time`.
diff --git a/Cargo.toml b/Cargo.toml
index 75b37950..6470b962 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -33,9 +33,6 @@ cast = "0.3"
num-traits = { version = "0.2", default-features = false, features = ["std"] }
oorandom = "11.1"
regex = { version = "1.5", default-features = false, features = ["std"] }
-tabwriter = "1.2.1"
-termcolor = "1.1.2"
-unicode-width = "0.1.9"
# Optional dependencies
rayon = { version = "1.3", optional = true }
diff --git a/README.md b/README.md
index a243e983..a4dfc091 100644
--- a/README.md
+++ b/README.md
@@ -119,7 +119,7 @@ For more details, see the [CONTRIBUTING.md file](https://github.com/bheisler/cri
Criterion.rs supports the last three stable minor releases of Rust. At time of
writing, this means Rust 1.59 or later. Older versions may work, but are not guaranteed.
-Currently, the oldest version of Rust believed to work is 1.56.1. Future versions of Criterion.rs may
+Currently, the oldest version of Rust believed to work is 1.57. Future versions of Criterion.rs may
break support for such old versions, and this will not be considered a breaking change. If you
require Criterion.rs to work on old versions of Rust, you will need to stick to a
specific patch version of Criterion.rs.
diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md
index 25bcd1f8..b7268009 100644
--- a/book/src/SUMMARY.md
+++ b/book/src/SUMMARY.md
@@ -20,7 +20,6 @@
- [Custom Test Framework](./user_guide/custom_test_framework.md)
- [Benchmarking async functions](./user_guide/benchmarking_async.md)
- [Quick Mode](./user_guide/quick_mode.md)
- - [Tabulating Results](./user_guide/tabulating_results.md)
- [WebAssembly/WASI](./user_guide/wasi.md)
- [cargo-criterion](./cargo_criterion/cargo_criterion.md)
- [Configuring cargo-criterion](./cargo_criterion/configuring_cargo_criterion.md)
@@ -30,4 +29,4 @@
- [Comparison to Criterion.rs](./iai/comparison.md)
- [Analysis Process](./analysis.md)
- [Frequently Asked Questions](./faq.md)
-- [Migrating from 0.2.* to 0.3.*](./migrating_0_2_to_0_3.md)
\ No newline at end of file
+- [Migrating from 0.2.* to 0.3.*](./migrating_0_2_to_0_3.md)
diff --git a/book/src/user_guide/tabulating_results.md b/book/src/user_guide/tabulating_results.md
deleted file mode 100644
index 2e86f0d0..00000000
--- a/book/src/user_guide/tabulating_results.md
+++ /dev/null
@@ -1,294 +0,0 @@
-
-
-
-# Tabulating Results
-
-Criterion can save the results of different benchmark runs and
-tabulate the results, making it easier to spot performance changes.
-
-The set of results from a benchmark run is called a `baseline` and each
-`baseline` has a name. By default, the most recent run is named `base` but this
-can be changed with the `--save-baseline {name}` flag. There's also a special
-baseline called `new` which refers to the most recent set of results.
-
-## Comparing profiles
-
-Cargo supports custom
-[profiles](https://doc.rust-lang.org/cargo/reference/profiles.html) for
-controlling the level of optimizations, debug assertions, overflow checks, and
-link-time-optmizations. We can use criterion to benchmark different profiles and
-tabulate the results to visualize the changes. Let's use the `base64` crate as
-an example:
-
-```bash
-> git clone https://github.com/KokaKiwi/rust-hex.git
-> cd rust-hex/
-```
-
-Now that we've clone the repository, we can generate the first set of benchmark results:
-
-```bash
-> cargo bench --profile=release `# Use the 'release' profile` \
- --bench=hex `# Select the 'hex' binary` \
- -- `# Switch args from cargo to criterion` \
- --save-baseline release `# Save the baseline under 'release'`
-```
-
-Once the run is complete (this should take a few minutes), we can benchmark the other profile:
-
-```bash
-> cargo bench --profile=dev `# Use the 'dev' profile` \
- --bench=benchmarks `# Select the 'hex' binary` \
- -- `# Switch args from cargo to criterion` \
- --save-baseline dev `# Save the baseline under 'dev'`
-```
-
-Finally we can compare the two benchmark runs (scroll to the right to see all columns):
-
-```bash
-> cargo bench --bench=hex -- --compare --baselines=dev,release
-```
-
-
-
-The first column in the above results has the names of each individual
-benchmark. The two other columns (`dev` and `release`) contain the actual
-benchmark results. Each baseline column starts with a performance index relative
-to the fastest run (eg. `faster_hex_decode` for `dev` has a performance index of
-239.50 because it is 239.50 times slower than the `release` build). Next is the
-mean execution time plus the standard deviation (eg. 847.6±16.54µs). Lastly
-there's an optional throughput. If no throughput data is available, it will be
-printed as `? ?/sec`.
-
-## Compact, list view.
-
-If horizontal space is limited or if you're comparing more than two baselines,
-it can be convenient to arrange the results in a vertical list rather than in a
-table. This can be enabled with the `--compare-list` flag:
-
-```
-faster_hex_decode
------------------
-release 1.00 3.5±0.01µs ? ?/sec
-dev 239.50 847.6±16.54µs ? ?/sec
-
-faster_hex_decode_fallback
---------------------------
-release 1.00 10.8±0.04µs ? ?/sec
-dev 52.58 567.7±8.36µs ? ?/sec
-
-faster_hex_decode_unchecked
----------------------------
-release 1.00 1256.2±1.57ns ? ?/sec
-dev 400.98 503.7±3.48µs ? ?/sec
-
-faster_hex_encode
------------------
-release 1.00 940.5±4.64ns ? ?/sec
-dev 259.95 244.5±2.04µs ? ?/sec
-
-faster_hex_encode_fallback
---------------------------
-release 1.00 11.2±0.02µs ? ?/sec
-dev 50.60 565.1±3.41µs ? ?/sec
-
-hex_decode
-----------
-release 1.00 119.3±0.17µs ? ?/sec
-dev 25.27 3.0±0.01ms ? ?/sec
-
-hex_encode
-----------
-release 1.00 60.9±0.08µs ? ?/sec
-dev 23.99 1460.8±18.11µs ? ?/sec
-
-rustc_hex_decode
-----------------
-release 1.00 107.4±0.40µs ? ?/sec
-dev 28.79 3.1±0.02ms ? ?/sec
-
-rustc_hex_encode
-----------------
-release 1.00 53.7±15.63µs ? ?/sec
-dev 25.80 1385.4±4.37µs ? ?/sec
-```
-
-## Filtering results
-
-Some projects have dozens or even hundreds of benchmarks which can be
-overwhelming if you're only interested in the performance of a single
-feature/function.
-
-Let's clone the `hex` crate and change just a single function:
-
-```bash
-> git clone https://github.com/KokaKiwi/rust-hex.git
-> cd rust-hex/
-```
-
-Save a baseline for the `main` branch:
-
-```bash
-> cargo bench --bench=hex `# Select the 'hex' binary` \
- -- `# Switch args from cargo to criterion` \
- --save-baseline main `# Save the baseline under 'main'`
-```
-
-Create a new branch:
-
-```bash
-> git checkout -b new-feature
-```
-
-For testing, let's modify the `hex_decode` benchmark to run twice:
-
-```diff
---- a/benches/hex.rs
-+++ b/benches/hex.rs
- c.bench_function("hex_decode", |b| {
- let hex = hex::encode(DATA);
-- b.iter(|| hex::decode(&hex).unwrap())
-+ b.iter(|| (hex::decode(&hex).unwrap(),hex::decode(&hex).unwrap()))
- });
-```
-
-Now we can benchmark just the `hex_decode` function:
-
-```bash
-> cargo bench --bench=hex `# Select the 'hex' binary` \
- -- `# Switch args from cargo to criterion` \
- --save-baseline new-feature `# Save the baseline under 'new-feature'` \
- ^hex_decode `# Select the 'hex_decode' benchmark`
-```
-
-And compare it to the `main` branch, verifying that we've introduced a 2x
-performance regression:
-
-```bash
-> cargo bench --bench=hex -- --compare --baselines=main,new-feature ^hex_decode
-```
-
-
group main new-feature
------ ---- -----------
-hex_decode 1.00 119.1±1.30µs ? ?/sec 2.06 245.5±2.21µs ? ?/sec
-
-
-## Thresholds
-
-If we don't know which benchmarks are of interest, we can filter the results
-based on how much they've changed.
-
-In the previous section, we only generated results for the `hex_decode`
-benchmark. For this run, we need a complete set of results:
-
-```bash
-> cargo bench --bench=hex `# Select the 'hex' binary` \
- -- `# Switch args from cargo to criterion` \
- --save-baseline new-feature `# Save the baseline under 'new-feature'` \
-```
-
-Now we can compare the results that differ by more than 10%:
-
-```bash
-> cargo bench --bench=hex -- --compare --baselines=main,new-feature --compare-threshold=10
-```
-
-
group main new-feature
------ ---- -----------
-hex_decode 1.00 119.1±1.30µs ? ?/sec 2.02 240.0±1.05µs ? ?/sec
-
-
-The above console output shows that only a single benchmark changed by more than
-10%.
-
-## Importing/Exporting JSON
-
-Baselines can be saved in JSON files for later use with the `--export` flag. Continuing with the `hex` crate example, here's how to
-save the `release` and `dev` baselines as JSON:
-
-```bash
-> cargo bench --bench=hex -- --export release > release.json
-```
-
-```bash
-> cargo bench --bench=hex -- --export dev > dev.json
-```
-
-Baselines stored as JSON can be referenced directly when comparing results:
-
-```bash
-> cargo bench --bench=hex -- --compare --baselines dev.json,release.json
-```
-
-