Konstantin Raev f2ad4e47da 0.13.6
2016-09-30 13:18:39 +01:00
2016-09-21 16:00:02 +01:00
2016-08-15 11:45:01 +01:00
2016-09-06 18:57:10 +01:00
2016-09-06 16:36:48 +01:00
2016-09-30 13:17:50 +01:00
2016-09-12 16:05:56 +01:00
2016-01-23 10:06:17 +00:00
2016-08-26 12:38:52 +01:00
2016-09-05 21:32:47 -04:00
2016-08-21 17:48:00 +01:00
2016-09-14 15:42:28 +01:00
2016-09-06 16:36:48 +01:00
2016-09-12 16:05:56 +01:00
2016-09-30 13:17:50 +01:00
2016-07-25 16:55:17 +01:00
2016-09-30 13:18:39 +01:00
2016-07-25 16:55:17 +01:00
2016-07-29 20:59:56 +01:00

kpm

alternate npm and bower client focused on determinism, security and performance.

Travis Status Circle Status


kpm is a package manager for the npm and bower registries with a few specific focuses.

Determinism: Based around a version lockfile which ensures that operations on the dependency graph can be easily transitioned. We check module directories and verify their integrity to ensure kpm install always produces the same file structure.

Security: Strict guarantees are placed around package installation. You have control over whether lifecycle scripts are executed for packages and package hashes are stored in the lockfile to ensure you get the same package each time.

Performance: We're always performing operations such as package resolving and fetching. This ensures little idle time and maximum resource utilization.

Features

  • Compatible with npm and bower. Supports mixing registries.
  • Offline mode which resolves registry queries against local cache.
  • Pretty, readable and minimal CLI output.
  • Ability to rename packages and have multiple root level packages of the same name but different versions.
  • Efficient and reliable package cache.
  • Deterministic package installation.
  • Stable public JS API with logging abstracted for consumption via build tools.
  • Mutex to ensure multiple running CLI instances don't collide and pollute each other.
  • Ability to restrict licenses of installed modules and ways to output licensing information.*
  • Concise lockfile format. No whitespace, ordered keys to ensure minimal changes and noise.
  • Vendored tarball dependencies.
  • Ability to manually resolve version conflicts so only a single version per package exists. (Bower style)
  • Efficient resolution, fetching and storage of git repos. We use hosted git APIs when using GitHub and Bitbucket for performance.
  • Caching of build artifacts produced by install scripts.
  • More emojis. 🐈

Usage (while in development)

$ git clone git@github.com:facebook/fbkpm.git kpm
$ cd kpm
$ npm install
$ npm run build
$ npm link
# go into some random directory
$ mkdir node_modules
$ kpm install your-package

Prior art

kpm wouldn't exist if it wasn't for excellent prior art. Followed are projects which kpm has been inspired by:

S
Description
No description provided
Readme BSD-2-Clause 38 MiB
Languages
JavaScript 97.8%
Shell 1.6%
PowerShell 0.5%