Skip to content

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.

License

Notifications You must be signed in to change notification settings

nowayhecodes/rpm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RPM Logo

RPM

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.

Features

  • 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

Installation

From Source

git clone https://github.com/nowayhecodes/rpm
cd rpm
cargo install --path .

From Cargo

cargo install rpm

Quick Install (Unix-like systems)

# 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

⚠️ Always inspect installation scripts before running them with root privileges. You can view the script here.

Usage

Installing Packages

Install packages locally (in current project):

rpm install express
rpm install lodash react react-dom

Install packages globally:

rpm install -g typescript

Removing Packages

Remove local packages:

rpm remove express

Remove global packages:

rpm remove -g typescript

Configuration

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

Performance

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

Security

  • Package integrity verification using SHA-256 checksums
  • Secure downloads over HTTPS
  • Sandboxed package installations
  • Memory-safe operations

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Requirements

  • Rust 1.70 or higher
  • Node.js environment (for compatibility)

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • NPM team for the package registry and ecosystem
  • Rust community for excellent async tools and libraries
  • Contributors and users of this project

Support

For bugs, questions, and discussions please use the GitHub Issues.

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published