About RCompare

Fast, free, and open-source comparison toolkit

Why RCompare?

RCompare was born from the need for a fast, reliable, and privacy-respecting file comparison tool. While commercial alternatives exist, they often come with hefty price tags, telemetry, or outdated technology.

Built with Rust, RCompare combines the performance of systems programming with modern memory safety. The project now ships multiple interfaces and integration surfaces: CLI workflows, a Slint desktop app, a PySide6 desktop app, and a C FFI patch API.

Inspired by Beyond Compare workflows and architectural ideas from Czkawka, RCompare focuses on practical, automatable comparison and synchronization tasks.

Project Goals

  • Maximum performance through parallel processing
  • Complete privacy - no telemetry or data collection
  • Cross-platform support (Windows, macOS, Linux)
  • Multiple interface options for different users
  • Comprehensive comparison capabilities
  • Integration-ready APIs for tooling ecosystems
  • Open-source and community-driven

Technology Stack

Built with modern, battle-tested technologies

Rust

Memory-safe systems programming language providing zero-cost abstractions and fearless concurrency.

BLAKE3

State-of-the-art cryptographic hash function achieving ~3GB/s on modern CPUs.

Slint + PySide6

Two desktop frontends: native Slint UI and a PySide6 power-user interface.

jwalk

Parallel directory traversal that saturates I/O bandwidth for maximum speed.

Text Diff Stack

Line-level text comparison with configurable whitespace, case, and regex normalization controls.

FFI + Patch Engine

libkomparediff2-compatible C API for parsing, manipulating, and serializing patch formats.

Project Architecture

Modular design for flexibility and maintainability

rcompare/ ├── rcompare_common/ # Shared types, traits, errors │ └── VFS trait, FileEntry, DiffNode, Configuration ├── rcompare_core/ # Core business logic (UI-agnostic) │ ├── scanner/ # Parallel directory traversal │ ├── comparison/ # File comparison engine │ ├── hash_cache/ # BLAKE3 cache management │ ├── text_diff/ # Text diff + normalization rules │ ├── binary_diff/ # Byte-level comparison │ ├── image_diff/ # Pixel and EXIF comparison │ └── vfs/ # Virtual file system abstractions │ ├── local.rs # Local filesystem │ ├── archive.rs # ZIP, TAR, 7Z, RAR support │ ├── s3.rs # AWS S3 / S3-compatible │ ├── webdav.rs # WebDAV protocol │ └── sftp.rs # SFTP/SSH support ├── rcompare_cli/ # Command-line interface ├── rcompare_gui/ # Graphical interface (Slint) ├── rcompare_pyside/ # Graphical interface (PySide6) └── rcompare_ffi/ # C API for patch/diff integration

License

MIT License

Simple and permissive. Use RCompare however you want with minimal restrictions.

Apache 2.0

Patent protection and clear contribution terms for enterprise users.

RCompare is dual-licensed. Choose whichever license works best for your project.

Get Involved

RCompare is open source and welcomes contributions. Whether it's code, documentation, or feedback - every contribution helps.