#archive #zstd #platform-independent #tool

bin+lib squishrs

Platform independent compression tool via zstd

4 stable releases

1.2.0 Aug 5, 2025
1.1.0 Jul 6, 2025
1.0.1 Jun 28, 2025

#238 in Compression

MIT license

79KB
1.5K SLoC

Squish

Compact, compress, and deduplicate files into a single archive format.

Crates.io


🧭 Table of Contents

🚀 Features

  • Pack entire directories into a .squish archive
  • Automatically deduplicates duplicate files/chunks
  • Compact archive format with compression
  • List archive contents with summaries
  • Unpack files with directory preservation

📥 Installation

Note: Ensure you have Rust and Cargo installed.

📦 Via Crates

cargo install squishrs

🔧 Clone and Build Locally:

git clone https://github.com/SamB032/squishRS.git
cd squishRS
cargo build --release

📌 Usage

Pack

squishrs pack ./my-folder -o archive.squish

List

squishrs list archive.squish

Unpack

squishrs unpack archive.squish -o ./output-dir

Help

squishrs --help

📚 Example

squishrs pack ./data -o data.squish
squishrs list data.squish
squishrs unpack data.squish -o ./restored

🛠 Development

Run commonly used commands from the provided Makefile:

> make help
all             Build the release binary
build           Build binary
run             Run target file with arguments
test            Run tests
fmt             Format code with rustfmt
lint            Run clippy linter
check           Run basic type-checking
clean           Clean build artifacts
install         Install the binary system-wide
help            Show help for each target

🔬 Internals

  • Built on zstd, indicatif, prettytable and clap
  • Chunk-based deduplication logic
  • Archives include a manifest mapping files to their chunks for accurate reconstruction
  • Simple .squish archive format optimized for speed, space-saving, and portability
  • Parallelized file and directory traversal for fast performance on large datasets using Rayon

🙌 Contributions

Contributions, issues, and feature requests are welcome! Feel free to open an issue or submit a pull request.

📄 License

MIT License @ 2025

Dependencies

~12–24MB
~286K SLoC