Skip to content

⚡ A toy Rust CLI for dataset hashing and comparison 🦀

License

Notifications You must be signed in to change notification settings

Nelsi11120/rush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rush

rush (Rust + hash) is a simple yet efficient CLI tool to hash and compare datasets using Merkle trees written in Rust.
It can hash individual files, build full dataset Merkle trees, and compare two trees to spot differences.

Note
This is a toy project, built for fun and as a way to learn more about Rust.
It’s not meant for production use, but feel free to explore, tinker, or extend it. The core methods are reliable.

Features

  • 🔑 Hash a single file (rush hash)
  • 🌳 Build a Merkle tree from a dataset (rush build)
  • 🔍 Compare two datasets (rush diff) – in progress
  • 🔌 Extensible design: new hashers can be added easily

Installation

git clone https://github.com/Nelsi11120/rush.git
cd rush
cargo build --release

The binary will be in target/release/rush

Usage

Build a dataset Merkle tree

rush build ./my_dataset --num-workers 4

Build a dataset Merkle tree using Blake3

rush build ./my_dataset --num-workers 4 --method blake3

Hash a single file

rush hash ./file.txt

Compare two datasets

rush diff ./dataset_v1 ./dataset_v2

Supported Hash Algorithms

  • MD5 (default, fast)
  • SHA-256
  • BLAKE3 (recommended: very fast, secure)

TODO / Progress

Core Features

  • File hashing (rush hash)
  • Build Merkle tree (rush build)
  • Diff two datasets (rush diff)
  • Support for BLAKE3 (rush build --method blake3)
  • Support for SHA256 (rush build -m sha256)

Nice to have

  • Unit tests for commands
  • Python bindings (PyPI wheel via pyo3/maturin)
  • Benchmark hashing throughput
  • Progress bar for hashing
  • Shell completions (bash/zsh/fish)
  • Add --quiet and --verbose modes
  • Option to ignore hidden files or patterns
  • Distribute binaries:
    • Homebrew tap (brew install rush)
    • Debian package + APT repo (apt-get install rush)

rush

MIT License Rust

About

⚡ A toy Rust CLI for dataset hashing and comparison 🦀

Topics

Resources

License

Stars

Watchers

Forks

Languages