Install
pcmp runs on Linux (x86_64), Windows (x86_64) and macOS (Apple Silicon). Each release carries a binary for all three, with a SHA256SUMS file. pcmp is one file and needs nothing else to run.
v=$(basename "$(curl -fsSLo /dev/null -w '%{url_effective}' https://github.com/gmrdad82/pito-compare/releases/latest)")mkdir -p ~/.local/bin && curl -fsSL "https://github.com/gmrdad82/pito-compare/releases/download/$v/pcmp-$v-linux-x86_64.tar.gz" | tar -xz -C ~/.local/bin pcmpv=$(basename "$(curl -fsSLo /dev/null -w '%{url_effective}' https://github.com/gmrdad82/pito-compare/releases/latest)")mkdir -p ~/.local/bin && curl -fsSL "https://github.com/gmrdad82/pito-compare/releases/download/$v/pcmp-$v-macos-arm64.tar.gz" | tar -xz -C ~/.local/bin pcmpOn Linux and macOS, ~/.local/bin needs to be on your PATH.
Windows
Section titled “Windows”In PowerShell:
$v = (Invoke-RestMethod https://api.github.com/repos/gmrdad82/pito-compare/releases/latest).tag_nameInvoke-WebRequest "https://github.com/gmrdad82/pito-compare/releases/download/$v/pcmp-$v-windows-x86_64.zip" -OutFile "$env:TEMP\pcmp.zip"Expand-Archive "$env:TEMP\pcmp.zip" "$env:LOCALAPPDATA\pcmp" -Force[Environment]::SetEnvironmentVariable('Path', [Environment]::GetEnvironmentVariable('Path', 'User') + ";$env:LOCALAPPDATA\pcmp", 'User')Open a new terminal afterwards, so it sees the new PATH.
From source
Section titled “From source”On any of the three, with Rust 1.97 or newer:
cargo install --locked --git https://github.com/gmrdad82/pito-compare --tag vX.Y.Z pito-compareReplace vX.Y.Z with a tag.
Check the download
Section titled “Check the download”Each release’s SHA256SUMS lists every file attached to it. On Linux, next to the downloaded archive:
sha256sum --check --ignore-missing SHA256SUMSQuick start
Section titled “Quick start”Save this as demo.toml:
title = "PARSE SPEED"unit = "MEGABYTES PER SECOND"better = "higher"suffix = " MB/S"parties = [{ name = "PARSER V2" }, { name = "PARSER V1" }]rows = [ { label = "CONFIG FILES", values = [612, 240] }, { label = "LOG LINES", values = [455, 420] }, { label = "DATA DUMPS", values = [1210, 388] },]then draw it:
$ pcmp demo.toml --out chartscharts/demo-paired.pngcharts/demo-ratio.pngcharts/ is made if it is missing. Two parties draw two charts: the paired bars and the balanced ratios. Compare two versions explains both, and the data format has every field.