A fast, reliable package manager for Node.js, built with Rust. RNP provides npm-like functionality with improved performance and reliability.
rnp init
— Initialize apackage.json
filernp init --yes
— Initialize with default values (no prompts)rnp install <package>
— Simulated install of a packagernp list
— List installed packages (coming soon)~/.rnp/cache
— Automatic tarball caching for faster installs
git clone https://github.com/a-khushal/rnp.git
cd rnp
cargo build --release
./target/release/rnp init
./target/release/rnp init -y
./target/release/rnp install <package-name>
./target/release/rnp list
To make rnp
available anywhere in your terminal, add this to your shell configuration file (~/.bashrc
, ~/.zshrc
, or ~/.config/fish/config.fish
):
For Bash/Zsh:
alias rnp='$HOME/<pwd>/rnp/target/release/rnp'
For Fish:
alias rnp='$HOME/<pwd>/rnp/target/release/rnp'
Then reload your shell or run:
source ~/.bashrc # or ~/.zshrc
After setting up the alias, you can use rnp
directly:
rnp init
rnp install <package-name>
- Basic package installation
- Caching System
- TAR ball caching in
~/.rnp/cache
- Cache invalidation logic
- Checksum verification
- TAR ball caching in
- Lockfile Support
-
package-lock.json
generation - Deterministic installs from lockfile
-
--no-package-lock
flag
-
- Node Modules
- Nested
node_modules
structure - Peer dependencies support
- Dependency hoisting
- Nested
- CLI Improvements
- Progress bars
- Colorized output
-
--verbose
and--quiet
flags
- Dependency Resolution
- Peer dependencies
- Optional dependencies
- Workspaces/monorepo support
-
rnp uninstall
- Remove packages -
rnp update
- Update packages -
rnp run
- Run package scripts -
rnp audit
- Security audits
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.