Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nowayhecodes/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.
https://github.com/nowayhecodes/rpm
npm npmjs package-manager rust
Last synced: about 1 month ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/nowayhecodes/rpm
- Owner: nowayhecodes
- License: mit
- Created: 2024-10-31T15:33:19.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-31T17:24:24.000Z (3 months ago)
- Last Synced: 2024-10-31T17:24:39.502Z (3 months ago)
- Topics: npm, npmjs, package-manager, rust
- Language: Rust
- Homepage:
- Size: 124 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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
```bash
git clone https://github.com/nowayhecodes/rpm
cd rpm
cargo install --path .
```#### From Cargo
```bash
cargo install rpm
```#### Quick Install (Unix-like systems)
```bash
# 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](https://raw.githubusercontent.com/nowayhecodes/rpm/main/install.sh).
### Usage
#### Installing Packages
Install packages locally (in current project):
```bash
rpm install express
rpm install lodash react react-dom
```Install packages globally:
```bash
rpm install -g typescript
```#### Removing Packages
Remove local packages:
```bash
rpm remove express
```Remove global packages:
```bash
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](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](https://github.com/nowayhecodes/rpm/issues).