blazediff

Crates.ioblazediff
lib.rsblazediff
version3.1.1
created_at2026-01-14 06:06:05.988626+00
updated_at2026-01-14 06:06:05.988626+00
descriptionHigh-performance image diffing with block-based optimization and SIMD
homepage
repositoryhttps://github.com/teimurjan/blazediff
max_upload_size
id2042284
size12,141,790
Teimur Gasanov (teimurjan)

documentation

README

blazediff

High-performance image diffing with block-based optimization and SIMD acceleration.

Crates.io License: MIT

Features

  • Block-based optimization - Skip identical regions for massive speedups on similar images
  • SIMD acceleration - Native SSE4.1 (x86) and NEON (ARM) implementations
  • Multiple formats - PNG and JPEG support via vendored libspng and libjpeg-turbo
  • Perceptual diffing - YIQ-based color difference with antialiasing detection
  • Cross-platform - Linux, macOS, and Windows support

Installation

cargo install blazediff

CLI Usage

# Basic diff
blazediff image1.png image2.png -o diff.png

# With custom threshold (0.0 - 1.0)
blazediff image1.png image2.png -o diff.png -t 0.1

# JSON output for scripting
blazediff image1.png image2.png --json

Library Usage

use blazediff::{diff, DiffOptions};

let options = DiffOptions {
    threshold: 0.1,
    include_anti_aliased: false,
    ..Default::default()
};

let result = diff("image1.png", "image2.png", Some("diff.png"), &options)?;
println!("Different pixels: {}", result.diff_count);

Performance

3-4x faster than odiff, 8x faster than pixelmatch on 4K images.

License

MIT

Commit count: 200

cargo fmt