Skip to content

Getting Started ​

Get up and running with Snapshot Comparison in minutes.

Prerequisites ​

  • Rust 1.70+ (for building from source)
  • Git

Installation ​

From Source ​

bash
# Clone the repository
git clone https://github.com/tuulbelt/snapshot-comparison.git
cd snapshot-comparison

# Build release binary
cargo build --release

# The binary is at target/release/snapcmp
./target/release/snapcmp --help

Global Installation ​

Install globally for easy access:

bash
cargo install --path .

# Now use 'snapcmp' anywhere
snapcmp --help

CLI Names ​

Both short and long names work:

  • Short (recommended): snapcmp
  • Long: snapshot-comparison

Quick Start ​

1. Create Your First Snapshot ​

bash
# Create a snapshot from command output
echo "Hello, World!" | snapcmp create hello

# Output: Created snapshot 'hello' (14 bytes, type: Text)

2. Check Against Snapshot ​

bash
# Check matching content
echo "Hello, World!" | snapcmp check hello
# Output: ✓ Snapshot 'hello' matches

3. See a Mismatch ​

bash
# Check different content
echo "Hello, Universe!" | snapcmp check hello
# Output: ✗ Snapshot 'hello' does not match
# [Shows diff output]

4. Update the Snapshot ​

bash
# Update with new expected output
echo "Hello, Universe!" | snapcmp update hello
# Output: Updated snapshot 'hello' (17 bytes)

Snapshot Directory ​

By default, snapshots are stored in ./snapshots/. Change this with the -d flag:

bash
# Use custom directory
echo "test" | snapcmp create test -d my-snapshots

# Check in custom directory
echo "test" | snapcmp check test -d my-snapshots

File Type Detection ​

Snapshot Comparison auto-detects file types:

  • Text: Default for most content
  • JSON: Content starting with { or [
  • Binary: Content with null bytes

Override with --type:

bash
# Force JSON type
cat data.json | snapcmp create config -t json

# Force binary type
cat image.png | snapcmp create logo -t binary

Next Steps ​

Released under the MIT License.