Skip to content

JinnyWong/blitz

Repository files navigation

☄️ Blitz

A fast, minimal JavaScript package manager written in Rust.


Demo


Features

  • ⏬ Fast installation using async I/O and parallel downloads
  • 🗄️ Caching for packages to avoid redundant downloads
  • 💾 Low disk and memory usage via deduplication and streaming
  • 🛠️ CLI with color-coded outputs and progress bars
  • ⚡ Fast dependency resolution

Benchmarks

Installing redux package (small size, ~16 KB uncompressed)

Tool Cold Install (s) Warm Install (s) Disk Usage (MB)
blitz 0.05707380933333333 0.05526689133333334 0.396
npm 2.0370520173333335 1.7289675873333337 3.3
yarn 1.3726210586666667 2.351056052 3.3
pnpm 0.5369854126666667 0.5695310960000001 3.5

Installing three package (medium size, ~1.5MB uncompressed)

Tool Cold Install (s) Warm Install (s) Disk Usage (MB)
blitz 1.3716558413333333 1.4117071753333332 36
npm 3.3465759593333337 1.7949767100000003 42
yarn 2.258768798 2.1892398366666668 34
pnpm 0.5708736986666667 0.5707977206666667 35

Installing lodash package (large size, ~4MB uncompressed)

Tool Cold Install (s) Warm Install (s) Disk Usage (MB)
blitz 1.1797829266666666 1.132625332 3.0
npm 1.3578584366666666 1.439510522 3.1
yarn 3.1947364740000004 1.9441966999999998 2.7
pnpm 0.563738518 0.5677060960000001 3.2

Setup

Clone this repository:

git clone https://github.com/JinnyWong/blitz
cd blitz

Run and build the project:

cargo build --release
  • This will compile blitz in optimized mode and output to target/release/blitz.
  • You can use cargo build if you're still developing/testing.

If you want to install it as a global CLI tool:

cargo install --path .

To run integration tests:

cargo test

To run benchmarking script:

chmod +x bench.sh
./bench.sh

Commands

  1. Install a package
cargo run -- install <package_name>
blitz install 

  1. List cache packages
cargo run -- cache
blitz cache

  1. Clear the entire cache directory:
cargo run -- cache --clear
blitz cache --clear

Documentation

For more info on this project, please refer to its documentation: 🔗link

About

☄️ A fast, minimal JavaScript package manager written in Rust.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published