Skip to content
/ pie Public

Some tinkering around building a Node.js package manager similar to npm.

Notifications You must be signed in to change notification settings

adrsimon/pie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

pie

A fast, space-efficient, and reliable Node.js package manager written in Rust.

Installation

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>

What can it do?

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] or pie install express, to install latest version.

What's next?

Here is a sort of roadmap of what I want to implement in the future:

  • Support of a package.json, and a package-lock.json file in the project directory.
  • Symlinking the installed packages to the project directory.
  • An uninstall and an update command to manage your ongoing projects
  • A run and an exec command to run your projects
  • A delete command to completely remove a package from the cache
  • Help messages for each command
  • More to come...

Known issues

  • 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.

Inspiration

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.

About

Some tinkering around building a Node.js package manager similar to npm.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages