https://github.com/ndxdeveloper/slashsum
Fast multi-threaded checksum calculator (CRC32, MD5, SHA1, SHA256, SHA512)
https://github.com/ndxdeveloper/slashsum
checksum cli-tool concurrent-processing crc32 cross-platform cryptography data-integrity file-integrity file-validation file-verification hash-calculator md5 multi-threaded parallel-computing performance rust sha1 sha256 sha512 utility
Last synced: about 11 hours ago
JSON representation
Fast multi-threaded checksum calculator (CRC32, MD5, SHA1, SHA256, SHA512)
- Host: GitHub
- URL: https://github.com/ndxdeveloper/slashsum
- Owner: NDXDeveloper
- License: other
- Created: 2025-04-12T13:17:23.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2026-01-11T15:39:36.000Z (3 months ago)
- Last Synced: 2026-01-11T16:41:39.995Z (3 months ago)
- Topics: checksum, cli-tool, concurrent-processing, crc32, cross-platform, cryptography, data-integrity, file-integrity, file-validation, file-verification, hash-calculator, md5, multi-threaded, parallel-computing, performance, rust, sha1, sha256, sha512, utility
- Language: Rust
- Homepage: https://snapcraft.io/slashsum
- Size: 2.83 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Slashsum ð
**Multi-threaded file checksum calculator**
[](https://github.com/NDXDeveloper/slashsum/actions/workflows/ci.yml)
[](https://github.com/NDXDeveloper/slashsum/releases)
[](https://snapcraft.io/slashsum)
[]()
[](LICENSE)
⥠Calculate multiple file checksums simultaneously with blazing-fast performance using Rust's concurrency capabilities.
---
## ð Table of Contents
- [ð Quick Start](#-quick-start)
- [âĻ Features](#-features)
- [ðļ Screenshot](#-screenshot)
- [ðĶ Installation](#-installation)
- [ð ïļ Usage](#-usage)
- [ð Performance Benchmarks](#-performance-benchmarks)
- [âïļ Comparison with Alternatives](#-comparison-with-alternatives)
- [ð§ How It Works](#-how-it-works)
- [ð§ Technical Details](#-technical-details)
- [â FAQ](#-faq)
- [ðïļ Uninstall](#-uninstall)
- [ð Dependencies](#-dependencies)
- [ðĪ Contributing](#-contributing)
- [ð Changelog](#-changelog)
- [ðĪ Author](#-author)
- [ð License](#-license)
---
## ð Quick Start
```bash
# Linux (Snap Store - recommended)
sudo snap install slashsum
# Linux (Debian/Ubuntu)
sudo apt install ./slashsum_v*_amd64.deb
# Windows (download installer from releases page)
# Run slashsum-setup-user-v*.exe
# Calculate checksums
slashsum myfile.iso
# Save results to file
slashsum myfile.iso --save
```
---
## âĻ Features
- ⥠**Parallel computation** of 5 hash algorithms simultaneously
- ð **Supported algorithms**:
- CRC32 (IEEE 802.3)
- MD5
- SHA-1
- SHA-256
- SHA-512
- ð **Large file support** (>10GB tested)
- ðū **Save results** to `.checksum` files
- âąïļ **Execution time metrics**
- ðĨïļ **Cross-platform** (Windows/Linux/macOS)
- ðŊ **Zero configuration** - works out of the box
- ðŠķ **Lightweight** - single binary, no dependencies
---
## ðļ Screenshot

---
## ðĶ Installation
### Option 1: Linux (Snap Store) - Recommended â
```bash
sudo snap install slashsum
```
ð Auto-updates enabled. [View on Snap Store](https://snapcraft.io/slashsum)
### Option 2: ð§ Linux (Portable)
Download the portable package from the [releases page](https://github.com/NDXDeveloper/slashsum/releases):
```bash
tar -xzvf slashsum-linux-amd64-portable.tar.gz
cd slashsum-linux-amd64-portable
sudo ./install.sh
```
### Option 3: ð§ Linux (DEB - Debian/Ubuntu/Linux Mint)
Download the `.deb` file from the [releases page](https://github.com/NDXDeveloper/slashsum/releases):
```bash
sudo apt install ./slashsum__amd64.deb
```
### Option 4: ð§ Linux (Snap from GitHub Release)
```bash
sudo snap install --dangerous slashsum__amd64.snap
```
### Option 5: ðŠ Windows (Installer) - Recommended â
Download the installer from the [releases page](https://github.com/NDXDeveloper/slashsum/releases):
| Installer | Description | Admin Required |
|-----------|-------------|----------------|
| `slashsum-setup-user-.exe` | ðĪ Current user only | No |
| `slashsum-setup-admin-.exe` | ð System-wide | Yes |
### Option 6: ðŠ Windows (Portable)
Download `slashsum-windows-amd64-portable.zip` from the [releases page](https://github.com/NDXDeveloper/slashsum/releases):
```powershell
Expand-Archive slashsum-windows-amd64-portable.zip -DestinationPath .
cd slashsum-windows-amd64-portable
.\install.bat
```
### Option 7: ð macOS (Portable)
Download the portable package from the [releases page](https://github.com/NDXDeveloper/slashsum/releases):
```bash
tar -xzvf slashsum-darwin-amd64-portable.tar.gz
cd slashsum-darwin-amd64-portable
sudo ./install.sh
```
### Option 8: ðĻ Build from source
**Prerequisites**: [Rust toolchain](https://rustup.rs) (1.70+)
```bash
git clone https://github.com/NDXDeveloper/slashsum
cd slashsum
cargo build --release
```
The binary will be available at `target/release/slashsum`.
---
## ð ïļ Usage
### Basic Syntax
```bash
slashsum [OPTIONS]
```
### Options
| Option | Description |
|--------|-------------|
| `--save` | Save checksums to a `.checksum` file |
| `-h`, `--help` | Print help information |
| `--version` | Print version and license information |
### Examples
```bash
# Calculate checksums for a file
slashsum document.pdf
# Calculate and save results
slashsum large_file.iso --save
# Creates: large_file.iso.checksum
# Display help
slashsum --help
# Display version and license
slashsum --version
# Process multiple files (shell loop)
for f in *.iso; do slashsum "$f" --save; done
```
### Output Format
```
File: large_file.iso
Size: 4.68 GB (5033165312 bytes)
CRC32: 8d7be4e9
MD5: a3b9d148c5f8d237f735a5d9795a2345
SHA1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
SHA256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
SHA512: 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
Time: 12.45s
```
---
## ð Performance Benchmarks
### ðĨïļ Test Environment
- **CPU**: AWS EC2 t2.xlarge (4 vCPUs)
- **RAM**: 16GB
- **Storage**: EBS SSD (gp3)
- **OS**: Ubuntu 22.04 LTS
### ð Results
| File Size | Slashsum | sha256sum | md5sum | Improvement |
|-----------|----------|-----------|--------|-------------|
| 100 MB | 0.45s | 0.28s | 0.15s | 5 hashes in ~1x time |
| 1 GB | 2.34s | 2.10s | 1.20s | 5 hashes in ~1x time |
| 10 GB | 25.12s | 22.50s | 12.80s | 5 hashes in ~1x time |
| 50 GB | 128.70s | 115.00s | 65.00s | 5 hashes in ~1x time |
> ðĄ **Key insight**: Slashsum calculates **5 different checksums** in approximately the same time it takes traditional tools to calculate just **1 checksum**. This is because the bottleneck is disk I/O, not CPU.
### ð Throughput
| Storage Type | Read Speed | Slashsum Throughput |
|--------------|------------|---------------------|
| HDD (7200rpm)| ~150 MB/s | ~150 MB/s |
| SSD (SATA) | ~550 MB/s | ~500 MB/s |
| NVMe SSD | ~3500 MB/s | ~2000 MB/s |
---
## âïļ Comparison with Alternatives
| Feature | Slashsum | sha256sum | md5sum | hashdeep |
|---------|----------|-----------|--------|----------|
| CRC32 | Yes | No | No | No |
| MD5 | Yes | No | Yes | Yes |
| SHA-1 | Yes | No | No | Yes |
| SHA-256 | Yes | Yes | No | Yes |
| SHA-512 | Yes | No | No | No |
| **All 5 at once** | **Yes** | No | No | No |
| Parallel processing | Yes | No | No | Yes |
| Single binary | Yes | Yes | Yes | Yes |
| Cross-platform | Yes | Linux/macOS | Linux/macOS | Yes |
| Progress indicator | No | No | No | Yes |
| Recursive scan | No | No | No | Yes |
### â
When to use Slashsum
- You need **multiple checksums** for the same file
- You want to **verify file integrity** with redundancy
- You're creating **release artifacts** that need multiple hashes
- You want **one command** instead of running 5 tools
### â ïļ When to use alternatives
- You only need **one specific hash**
- You need to **recursively scan directories** (use `hashdeep`)
- You need a **progress bar** for very large files
---
## ð§ How It Works
```
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â SLASHSUM â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââĪ
â â
â âââââââââââ ââââââââââââââââ âââââââââââââââââââââââ â
â â File ââââ>â Reader âââââ>â Crossbeam Channel â â
â â (disk) â â (1MB chunks) â â (broadcaster) â â
â âââââââââââ ââââââââââââââââ ââââââââââââŽâââââââââââ â
â â â
â âââââââââââââââââââââââââââââââžââââââââ â
â â â â â
â v v v â
â ââââââââââââ ââââââââââââ ââââââââââââ ... â
â â CRC32 â â MD5 â â SHA-1 â â
â â (thread) â â (thread) â â (thread) â â
â ââââââŽââââââ ââââââŽââââââ ââââââŽââââââ â
â â â â â
â v v v â
â âââââââââââââââââââââââââââââââââââââââââââââââ â
â â Result Aggregator â â
â âââââââââââââââââââââââââââââââââââââââââââââââ â
â â â
â v â
â ââââââââââââââ â
â â Output â â
â ââââââââââââââ â
â â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
```
### âïļ Processing Steps
1. ð **File Reading**: Buffered reading in 1MB chunks for optimal I/O
2. ðĄ **Data Distribution**: Uses crossbeam channels to broadcast chunks to all hash workers
3. ⥠**Parallel Processing**: Dedicated thread for each hash algorithm (5 threads)
4. ð **Result Aggregation**: Waits for all threads to complete and collects results
5. ð **Output Formatting**: Human-readable sizes and standardized hash formats
### ðĪ Why 1MB chunks?
- â **Too small** (4KB): High overhead from channel operations
- â **Too large** (100MB): High memory usage, cache misses
- â
**1MB**: Sweet spot balancing throughput and memory efficiency
---
## ð§ Technical Details
| Property | Value |
|----------|-------|
| **Binary size** | ~650 KB (Linux), ~700 KB (Windows) |
| **Memory usage** | ~10-15 MB (5 threads à 1MB buffer + overhead) |
| **Rust version** | 1.70+ (stable) |
| **Architecture** | x86_64 only |
| **Dependencies** | None (static binary) |
| **Threads** | 5 (one per hash algorithm) + 1 (file reader) |
| **Buffer size** | 1 MB per chunk |
| **Channel capacity** | 1024 chunks |
### ðĨïļ Supported Platforms
| Platform | Architecture | Format |
|----------|--------------|--------|
| ð§ Linux | x86_64 | Binary, DEB, Snap, tar.gz |
| ðŠ Windows | x86_64 | EXE installer, ZIP portable |
| ð macOS | x86_64 | tar.gz portable |
---
## â FAQ
### ðĪ Why calculate 5 checksums instead of just one?
Different use cases require different algorithms:
- **CRC32**: Fast error detection, used in ZIP files
- **MD5**: Legacy compatibility, still widely used
- **SHA-1**: Git commits, some package managers
- **SHA-256**: Modern standard, security applications
- **SHA-512**: Maximum security, large file verification
Having all 5 ready saves time when you need to publish or verify files.
### ð Why is Slashsum not much slower than single-hash tools?
Disk I/O is the bottleneck, not CPU. While reading the file once, all 5 hash algorithms process the data in parallel. The overhead of parallel processing is minimal compared to disk read time.
### ðïļ Can I choose which algorithms to calculate?
Not currently. Slashsum always calculates all 5 checksums. This keeps the tool simple and ensures consistent output. Future versions may add algorithm selection.
### â
Does Slashsum verify checksums?
Not yet. Currently, Slashsum only calculates checksums. Verification mode (`--verify`) may be added in future versions.
### ðŧ Why x86_64 only?
Cross-compilation for ARM and other architectures is planned but not yet implemented. You can build from source for other architectures if you have Rust installed.
### ð Is it safe to use MD5/SHA-1?
For **file integrity** (detecting accidental corruption): â
Yes, they're fine.
For **security** (detecting tampering): â ïļ Use SHA-256 or SHA-512.
Slashsum provides both, so you can use the appropriate one for your needs.
---
## ðïļ Uninstall
### ð§ Linux (Snap)
```bash
sudo snap remove slashsum
```
### ð§ Linux (DEB)
```bash
sudo apt remove slashsum
```
### ð§ð Linux/macOS (Portable)
```bash
# Using uninstall script
sudo ./uninstall.sh
# Or manually
sudo rm /usr/local/bin/slashsum
```
### ðŠ Windows (Installer)
- **Settings** > **Apps** > **Slashsum** > **Uninstall**
- Or: **Control Panel** > **Programs** > **Uninstall**
### ðŠ Windows (Portable)
```powershell
# Using uninstall script
.\uninstall.bat
# Or manually delete from your PATH folder
```
---
## ð Dependencies
- [crossbeam-channel](https://docs.rs/crossbeam-channel) - High-performance multi-producer multi-consumer channels
- [RustCrypto Hashes](https://github.com/RustCrypto/hashes) - Pure Rust cryptographic hash implementations
- [crc](https://docs.rs/crc) - CRC32 calculation (IEEE 802.3 polynomial)
---
## ðĪ Contributing
Contributions are welcome! Please read our guidelines before submitting.
- [CONTRIBUTING.md](CONTRIBUTING.md) - Contribution guidelines
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) - Code of conduct
### How to contribute
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
---
## ð Changelog
See [Releases](https://github.com/NDXDeveloper/slashsum/releases) for version history and release notes.
---
## ðĪ Author
**Nicolas DEOUX**
- Email: [NDXDev@gmail.com](mailto:NDXDev@gmail.com)
- LinkedIn: [nicolas-deoux](https://www.linkedin.com/in/nicolas-deoux-ab295980/)
- GitHub: [NDXDeveloper](https://github.com/NDXDeveloper)
---
## ð License
MIT License - See [LICENSE](LICENSE) for details.
```
Copyright (c) 2025-2026 Nicolas DEOUX
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...
```
---
**Why "Slashsum"?** Combination of "slash" (/) for file paths and "checksum" - because every good tool needs a catchy name!
---
**Happy hashing!**
[](https://github.com/NDXDeveloper/slashsum)
*If you find this useful, a star is always appreciated.*