Skip to content
/ pacm Public

Fast, disk-efficient, cache-first, and secure JavaScript/TypeScript package manager

License

Notifications You must be signed in to change notification settings

pacmpkg/pacm

Pacm Logo

Fast, disk-efficient, secure JavaScript/TypeScript package manager (prototype)

License: ICL-1.0 Version
By InfiniteJS

πŸš€ About

Pacm is a blazing-fast, cache-first package manager for JavaScript and TypeScript projects. Built with Rust for maximum performance and reliability, it aims to provide a secure and efficient alternative to existing package managers.

✨ Features

  • Lightning Fast: Written in Rust for optimal performance
  • Cache-First: Intelligent caching reduces installation times
  • Secure: Cryptographic integrity verification for all packages
  • Disk Efficient: Minimal disk usage through deduplication
  • NPM Compatible: Works with existing npm packages and package.json files
  • Cross-Platform: Supports Windows, macOS, and Linux

πŸ“¦ Installation

From Source

git clone https://github.com/pacmpkg/pacm.git
cd pacm
cargo build --release
# Binary will be available at target/release/pacm

Pre-built Binaries

Coming soon - check releases for pre-built binaries

πŸ› οΈ Usage

Initialize a new project

pacm init --name my-project

Install dependencies

pacm install
# or
pacm i

Add a package

pacm add lodash
pacm add axios --dev

Remove a package

pacm remove lodash

List installed packages

pacm list

Cache management

pacm cache path    # Show cache location
pacm cache clean   # Clear cache

Advanced commands

pacm pm lockfile   # Manage lockfile
pacm pm prune      # Remove unused packages

πŸ—οΈ Architecture

Pacm is built with a modular architecture:

  • Core Library (src/): Lockfile management, manifest handling, dependency resolution
  • CLI (src/cli/): Command-line interface and commands
  • Cache (src/cache/): Package caching and retrieval
  • Fetcher (src/fetch/): Package downloading and verification
  • Installer (src/installer/): Package installation logic
  • Resolver (src/resolver/): Dependency resolution algorithms

πŸ§ͺ Testing

The project includes a comprehensive testing suite located in tests/. Run tests with:

cargo test

See tests/README.md for details about the testing structure.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Setup

git clone https://github.com/pacmpkg/pacm.git
cd pacm
cargo build
cargo test

Code Style

This project follows Rust's standard formatting. Please run cargo fmt before submitting PRs.

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Community Guidelines

πŸ“„ License

Licensed under ICL-1.0.

⚠️ Disclaimer

This is a prototype implementation. It is not yet ready for production use. Use at your own risk.

πŸ“ž Contact

About

Fast, disk-efficient, cache-first, and secure JavaScript/TypeScript package manager

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Contributors 3

  •  
  •  
  •