Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ snpm Public

Speedy Node Package Manager

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

binbandit/snpm

Repository files navigation

snpm logo

A pnpm-compatible package manager, rewritten in Rust.

npm version GitHub release License

Documentation · Releases · Issues


Note: snpm is under active development. Core features work well, but we're still building toward full pnpm compatibility. Contributions are welcome!


What is snpm?

snpm is a drop-in replacement for pnpm, built from the ground up in Rust. Our goal is to match pnpm's functionality while delivering better performance and a cleaner developer experience.

Current status:

  • ✅ Core commands working (install, add, remove, run, exec, dlx)
  • ✅ Workspaces and catalogs
  • ✅ Lockfile compatibility
  • ✅ Security features (install script blocking, min package age)
  • 🚧 Publishing (snpm publish)
  • 🚧 Full pnpm CLI parity

Install

npm install -g snpm

Or download a binary from GitHub Releases.


Usage

snpm install # Install dependencies
snpm add react # Add a package
snpm add -D typescript # Add a dev dependency
snpm run build # Run a script

If you're coming from pnpm, snpm reads your existing pnpm-workspace.yaml and pnpm-lock.yaml.


Why snpm?

We love pnpm. We just think it can be faster and simpler.

snpm pnpm
Written in Rust
Install script blocking
Min package age protection
Reads pnpm config
Version catalogs
Full CLI parity 🚧

Features

Security first — Install scripts are blocked by default. Packages must be explicitly whitelisted. Set SNPM_MIN_PACKAGE_AGE_DAYS=7 to ignore recently published packages.

pnpm compatible — Reads pnpm-workspace.yaml, pnpm-lock.yaml, and .npmrc. Migration is straightforward.

Workspaces & catalogs — First-class monorepo support with version catalogs to eliminate drift.

Patchingsnpm patch edit lodash → make changes → snpm patch commit. Patches auto-apply on install.


CI/CD

snpm install --frozen-lockfile # Fail if lockfile is out of sync
snpm install --production --frozen-lockfile # Skip devDependencies
SNPM_MIN_PACKAGE_AGE_DAYS=7 snpm install # Ignore recently published packages

Documentation

snpm.io


Contributing

We need your help! snpm is actively looking for contributors. Whether it's bug reports, feature requests, documentation improvements, or code contributions — all are welcome.

git clone https://github.com/binbandit/snpm.git
cd snpm
cargo build && cargo test

See CONTRIBUTING.md for our development philosophy, code guidelines, and areas where we need help.


License

MIT OR Apache-2.0

AltStyle によって変換されたページ (->オリジナル) /