ULTRA vs NPM / Yarn
Yarn is Yarn Classic.
What's the difference between ULTRA and NPM / Yarn?
The main difference between ULTRA and NPM / Yarn is the dependency resolution algorithm. NPM / Yarn gets all the dependencies first and then installs them. ULTRA gets one dependency at a time and installs it. This means that ULTRA can install dependencies faster than NPM / Yarn.
Also ULTRA installs all the packages inside a global store (as PNPM does) and creates a hardlink to the package inside the project's node_modules folder. This means that ULTRA doesn't need to install the same package twice if it's used in multiple projects.
It works?
It depends. ULTRA is still in development and it's not ready for production yet. It's not recommended to use it in production yet.
You can test for example, with a Next or a Vite project and it should work.
How much faster is ULTRA than NPM / Yarn?
Varies depending on the number of project dependencies.
If the proyect has a few dependencies, for example Vite quickstart, clean installs are almost the same. Installs with cache are much faster with ULTRA.
If the project has a lot of dependencies, for example Next.js, ULTRA is much faster.
You can check the benchmarks in the closed PR's comments. Closed PR's
What's the difference between ULTRA and PNPM?
Although similar, Ultra and PNPM have some differences.
Both use a shared store to store dependencies and reuse them in different projects on your computer.
The most visible difference is the structure of the Node Modules, PNPM creates a folder inside that is called .pnpm
, there it stores the dependencies that later creates symbolic links to the parent folder.
Ultra creates a structure similar to the one created in NPM, Yarn or Bun.
To better understand how PNPM works, we recommend to take a look at its documentation
In terms of speed, PNPM is faster than Ultra in clean installations, but Ultra is faster in installations with Cache or lockfile.
If you are working on a production project, we recommend you to use PNPM, in fact, until Ultra is stable, we use PNPM to manage our repository.
Does it work in Monorepos?
Monorepos support is still in development and may not work as expected. #45