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.