Frequently Asked Questions
Find answers to common questions about RCompare
RCompare is a fast, free, and open-source file and directory comparison toolkit written in Rust. It includes a CLI, a Slint desktop GUI, a PySide6 desktop GUI, and a C FFI for patch/diff integration.
Yes! RCompare is completely free and open-source under the MIT and Apache-2.0 licenses. You can use it for personal or commercial purposes without any cost. There are no premium features, subscriptions, or hidden fees.
RCompare runs on:
- Windows - Windows 10 and 11 (64-bit)
- macOS - macOS 11 (Big Sur) and later, both Intel and Apple Silicon
- Linux - Ubuntu 20.04+, Fedora 35+, Arch Linux, and most modern distributions
RCompare uses BLAKE3 for hashing, which achieves speeds of approximately 3GB/s on modern CPUs - significantly faster than MD5 or SHA-256. Combined with parallel directory traversal and a persistent hash cache, RCompare can compare millions of files efficiently while using minimal memory (~100-200 bytes per file).
No. RCompare operates 100% offline and never collects any data, telemetry, or usage statistics. Your files and comparison results never leave your computer. This is a core principle of the project.
RCompare supports:
- Directories - Full recursive comparison
- Text files - With whitespace, case, and regex normalization options
- Images - Pixel comparison with optional EXIF metadata checks
- Binary files - Byte-level and hex-oriented comparison
- Archives - ZIP, TAR, TAR.GZ, TGZ, 7Z, RAR (read-only)
- Structured data - CSV, Excel, JSON, YAML, and Parquet formats
Yes! RCompare supports cloud and remote storage:
- S3/S3-Compatible - AWS S3, MinIO, DigitalOcean Spaces, Wasabi
- WebDAV - Nextcloud, ownCloud, Apache mod_dav
- SFTP - Any SSH server with SFTP support
RCompare maintains a persistent cache of file hashes to avoid re-computing them for unchanged files. The cache stores the BLAKE3 hash along with the file's size and modification timestamp. On subsequent comparisons, if a file hasn't changed, the cached hash is used instead of reading the entire file again. This dramatically speeds up repeated comparisons.
Cache locations:
- Linux:
~/.cache/rcompare/ - Windows:
%LOCALAPPDATA%\rcompare\cache\ - macOS:
~/Library/Caches/rcompare/
In CLI output:
==- Files are identical!=- Files are different<<- File exists only on the left side>>- File exists only on the right side??- Same size but not verified (use --verify-hashes)
Yes. The CLI is designed for automation and supports multiple workflow commands:
rcompare_cli scan /left /right --json > scan.json
rcompare_cli sync /left /right --direction bidirectional --dry-run --json > plan.json
rcompare_cli diff-file /left /right --path src/main.rs --mode text --json > diff.json
You can also use --no-color for cleaner logs and copy/read commands for file-level automation.
Use the -i or --ignore flag with glob patterns:
rcompare_cli scan /project /backup -i "*.o" -i "target/" -i "node_modules/"
RCompare also automatically respects .gitignore files in the directories being compared.
RCompare supports text-oriented diff workflows with configurable matching behavior:
- Whitespace handling modes (
all,leading,trailing,changes) - Case-insensitive comparison mode
- Regex-based normalization rules
- Line-level reports in CLI/JSON outputs
These options are available in both full scans and focused diff-file command workflows.
Contributions are welcome! You can:
- Report bugs or request features on GitHub Issues
- Submit pull requests with improvements
- Improve documentation
- Help with translations
- Spread the word about RCompare
Check out the GitHub repository for contribution guidelines.
RCompare currently has:
- rcompare_gui (Slint) - Native Rust desktop frontend focused on core compare workflows
- rcompare_pyside (PySide6) - Advanced desktop frontend with multi-session tabs, profiles, and richer session management
Yes. The rcompare_ffi crate provides a libkomparediff2-compatible C API for parsing and manipulating patch/diff data, including apply/unapply and serialization workflows.
Still Have Questions?
Can't find what you're looking for? Open an issue on GitHub and we'll help you out.
Ask on GitHub