nrush

Fast and tiny update checker for npm packages, written in Rust.

Downloads
2.2K
Stars
2
Committers
2

nrush 🦀

A speedy way to update all packages in a Node/Bun project, written in Rust.

Usage

Bun

bun --bun add -d nrush@latest # Ensures the latest version is used
nrush -i

Node

npx nrush@latest -i

Commands:

  • nrush about - Display comprehensive information about NRush.
  • nrush help - Provide a usage guide for NRush. Primarily, this section.

Arguments: (Arguments are applicable only if no commands are supplied and only nrush is executed.)

  1. Update Options (-u / --update):

    • Automatically updates all dependencies without user interaction.
  2. Interactive Mode (-i / --interactive)

    • User can select which packages to update. Defaults to this if both -u and -i are supplied.
  3. Include (--include <dev,peer>):

    • Include dev and/or peer dependencies in the update process.
  4. Path Specification (-p <path> / --path <path>):

    • Specify the path to a package.json file. The default is the current directory.
  5. Skip Ranges in Versioning (--skip-ranges):

    • Skips version ranges in package.json. Default is false, preserving them.
    • Example: ^1.0.0 will be updated to 2.0.0 if --skip-ranges is supplied.
  6. Update Any Version (--update-any):

    • Updates * versions in package.json. Default is false, maintaining them.
    • Example: * will be updated to 2.0.0 if --update-any is supplied.
  7. SOON: Semver Constraint (-s <semver> / --semver <semver>):

    • Specify a maximum semver range to update to. Choose either major, minor, or patch. Default is major.
    • This currently does nothing.

By executing nrush without any arguments or commands, a list of updatable packages will be displayed, and you'll be prompted to install them.

Purpose

I made this as a personal alternative to npm-check-updates, mostly as a challenge to write a less feature-packed, faster version that checks the packages concurrently, resulting in 🔥speed🔥.

Concurrency, baby.

Contributing

Please do. I don't really do Rust that often, and all of this was done in 30 minutes.

Goals

  • Full feature set from npm-check-updates

Notes