Performance
Every row invokes the product's direct CLI executable; TomlSmith uses the release-mode Rust tomlsmith binary. Package-manager launchers and wrapper processes are excluded from the comparison.
Reproduction commands, product setup, and the measurement harness are maintained in the tomlsmith/benchmark repository.
Check · TOML 1.0
median latency · logarithmic scale · lower is betterTomlSmith native CLI10.21 ms · 12.26 MiB/s · 6.98 MiB RSS tomlv · BurntSushi12.07 ms · 10.37 MiB/s · 8.97 MiB RSS Taplo CLI23.34 ms · 5.36 MiB/s · 18.59 MiB RSS Tombi206.80 ms · 0.61 MiB/s · 27.25 MiB RSS Check · TOML 1.1
median latency · logarithmic scale · lower is betterTomlSmith native CLI8.17 ms · 15.33 MiB/s · 6.95 MiB RSS tomlv · BurntSushi10.07 ms · 12.43 MiB/s · 8.89 MiB RSS Tombi193.31 ms · 0.65 MiB/s · 27.28 MiB RSS Format · TOML 1.0
median latency · logarithmic scale · lower is betterTomlSmith native CLI8.35 ms · 14.99 MiB/s · 6.95 MiB RSS tomll · go-toml*10.91 ms · 11.47 MiB/s · 6.45 MiB RSS dprint + TOML20.12 ms · 6.22 MiB/s · 19.94 MiB RSS Taplo CLI22.07 ms · 5.67 MiB/s · 18.77 MiB RSS Tombi655.14 ms · 0.19 MiB/s · 31.86 MiB RSS Prettier + TOML678.41 ms · 0.18 MiB/s · 594.09 MiB RSS Format · TOML 1.1
median latency · logarithmic scale · lower is betterTomlSmith native CLI8.36 ms · 14.97 MiB/s · 7.02 MiB RSS tomll · go-toml*9.87 ms · 12.68 MiB/s · 6.56 MiB RSS dprint + TOML18.99 ms · 6.59 MiB/s · 19.94 MiB RSS Tombi721.46 ms · 0.17 MiB/s · 31.55 MiB RSS
How to read the results
- Every number is the median cold-start end-to-end latency for the selected synthetic document; lower is better, and every timed sample starts a new process.
- TOML 1.0 and 1.1, and
check and format, are four independent lanes. Compare products only within one panel.
- Differences within a few percent can be session drift and should not be read as a stable ordering.
tomll discards comments and rewrites literal styles, so it performs less work than the comment-preserving formatters.
Measurement contract
This comparison measures product CLIs, not parser libraries:
- TomlSmith is built in release mode and invoked directly as the native Rust
CLI, matching the single-process boundary used by Taplo, dprint, and the Go
tools.
- Every timed sample starts a fresh process and uses stdin/stdout/stderr.
- TOML 1.0 and 1.1, and
check and format, are separate lanes.
- Correctness is checked before timing. Format output must reparse under the
same version, preserve decoded content, and remain unchanged on a second
format pass.
- Peak RSS is measured in separate fresh processes so the resource meter does
not affect latency samples.