#package-manager

upm_lib

Universal Package Manager is a way to perform basic package management across a range of package managers such as Apt, Pip, and Gem. This is the backend logic that can be used to create a frontend for upm.

2 unstable releases

Uses old Rust 2015

0.3.0 Feb 9, 2018
0.2.0 Feb 1, 2018

#226 in #package-manager

MIT license

22KB
411 lines

The universal package manager library (upm-lib) provides an abstraction to perform simple commands with any package manager. Currently there are no frontends implemented, but the functionality is exposed for frontends to utilize. Feel free to implement a frontend!

If you want to do something with a particular package manager then this probably isn't the library for you. If you want to query multiple package managers at once to search for a package provided by multiple sources, then this is the library for you. This is common for language specific binaries that are provided by language package managers and system package managers.

Since certain package managers such as NPM allow installation in a user's home directory or somewhere accessible for all users, there is a distinction between installation and removal of packages on a system-wide level and a local level.

It is expected that the frontend would load in the different package managers from configuration files as discussed in PackageManager.

Versioning is provided by the Version struct. Version is used in place of semver due to the need to support non-semantic versions.

Dependencies

~4MB
~84K SLoC