A fast, space-efficient, and reliable Node.js package manager written in Rust.
First of all, you need to have Rust installed on your machine. You can install it by following the instructions on the official website.
Then you can install the package by following these steps:
- Clone the repository
- Build the package with
cargo build --release
- Eventually add the target/release folder to your PATH.
- Run the program with
.target/release/pie <command> <options>
Not much for the moment. The project is at its very early stages.
It can install packages from the npm registry. Here is a list of commands:
install
- installs a package from the npm registry. Example:pie install [email protected]
orpie install express
, to install latest version.
Here is a sort of roadmap of what I want to implement in the future:
- Support of a
package.json
, and apackage-lock.json
file in the project directory. - Symlinking the installed packages to the project directory.
- An
uninstall
and anupdate
command to manage your ongoing projects - A
run
and anexec
command to run your projects - A
delete
command to completely remove a package from the cache - Help messages for each command
- More to come...
- Problems parsing package names when they contain a
@
symbol, such as@babel/core
- Problems retrieving lockfile when package contains a / in its name, such as
@vue/compiler-core
- A rare bug where the download of the package is too long. The program stops before the end of the download, and the package is empty but considered in cache. → This should be fixed, in the latest version but I'm still waiting to be sure.
The idea to code this project came by watching conaticus's video about creating a package manager in Rust. The early stages of the project are inspired by his work. The project is slowly detaching from his work.