A high-performance Node.js package manager implemented in Rust, focused on speed, safety, and efficiency. RPM handles package installation, dependency resolution, and version control while maintaining compatibility with the Node.js ecosystem.
- Fast parallel package downloads and installations
- Secure package verification with hash checking
- Support for global and local package installations
- Full compatibility with
package.json
and npm registry - Memory-safe implementation leveraging Rust's guarantees
- Efficient dependency resolution and version management
git clone https://github.com/nowayhecodes/rpm
cd rpm
cargo install --path .
cargo install rpm
# Default installation
curl -fsSL https://raw.githubusercontent.com/nowayhecodes/rpm/main/install.sh | sh
# Custom installation directory
export RPM_INSTALL_DIR="$HOME/.local/bin"
curl -fsSL https://raw.githubusercontent.com/nowayhecodes/rpm/main/install.sh | sh
Install packages locally (in current project):
rpm install express
rpm install lodash react react-dom
Install packages globally:
rpm install -g typescript
Remove local packages:
rpm remove express
Remove global packages:
rpm remove -g typescript
RPM uses the standard package.json
for project configuration and is fully compatible with existing Node.js projects. It respects:
- Dependencies and devDependencies
- Version constraints
- Package scripts
- Other npm-compatible configurations
RPM leverages Rust's concurrency model and safety features to provide:
- Parallel package downloads
- Efficient disk I/O operations
- Minimal memory footprint
- Fast dependency resolution
- Package integrity verification using SHA-256 checksums
- Secure downloads over HTTPS
- Sandboxed package installations
- Memory-safe operations
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Rust 1.70 or higher
- Node.js environment (for compatibility)
This project is licensed under the MIT License - see the LICENSE file for details.
- NPM team for the package registry and ecosystem
- Rust community for excellent async tools and libraries
- Contributors and users of this project
For bugs, questions, and discussions please use the GitHub Issues.