Yesterday, at JSConfEU ’19, the team behind Entropic announced Entropic, a federated package registry with a new CLI that works smoothly with the network. Entropic is also Apache 2 licensed and is federated. It mirrors all packages that users install from the legacy package manager.
Entropic offers a new file-centric API and a content-addressable storage system that minimizes the amount of data that should be retrieved over a network. This file-centric approach also applies to the publication API.
C J Silverio, Principal Engineer at Eaze said during the announcement, “I actually believe in open source despite everything I think it’s good for us as human beings to give things away to each other but I think it’s important. It’s going to be plenty for my work so Chris tickets in news isn’t it making out Twitter moment now Christensen and I have the natural we would like to give something away to you all right now.”
— Mariko Kosaka (@kosamari) June 1, 2019
“npm does not love you. npm cannot love you. npm Inc is a Delaware corporation founded as a financial instrument intended to turn money into more money for a handful of men.” @ceejbot with the 🔥🔥🔥https://t.co/5j7u7IJgUi
— Cole Strode (@colestrode) June 2, 2019
Features of Entropic
All the Entropic packages are namespaced, and a full Entropic package spec includes the hostname of its registry. The package specifications are also fully qualified with a namespace, hostname, and package name. They appear to be: [email protected]/pkg-name. For example, the ds cli is specified by [email protected]/ds.
If a user publishes a package to their local registry that depends on packages from other registries, then the local instance will mirror all the packages on which the user’s package depend on. The team aims to keep each instance entirely self-sufficient, so installs aren’t dependent on a resource that might vanish. And the abandoned packages are moved to the abandonware namespace. The packages can be easily updated by any user in the package’s namespace and can also have a list of maintainers.
The ds cli
Entropic requires a new command-line client known as ds or “entropy delta“. According to the Entropic team, the cli doesn’t have a very sensible shell for running commands yet.
Currently, if users want to install packages using ds then they can now run ds build in a directory with a Package.toml to produce a ds/node_modules directory. The GitHub page reads, “This is a temporary situation!”
But Entropic appears to be more like an alternative to npm as it seeks to address the limitations of the ownership model of npm.Inc. It aims to shift from centralized ownership to federated ownership, to restore power back to the commons.
And that's @ceejbot's article explaining the economics of package managers. This is basically her written talk. If you think npm loves you and you don't pay for every single 'npm install' – read this. After that start supporting the work on entropic✨ https://t.co/jDzCOeoHjS
— Georgios @JSConfEU (@deluxee) June 3, 2019
To know more about this news, check out the GitHub page.