npm-package-registry

command module
v0.0.0-...-9c55cd9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2019 License: MIT Imports: 1 Imported by: 0

README

npm-package-registry

Current Release CI Build Licence


Introduction

NPR provides a minimal NPM-compatible package registry with support of multiple database and storage providers. NPR is designed to be small and fast, allowing for easy deployment to cloud. NPR is not a proxy registry, it doesn't support caching and redirecting requests to an upstream registry. If you require such functionality, consider using npm-cache-proxy or Verdaccio.

Supported features
  • Publish package
  • Install package
  • Unpublish package
  • Organizations
  • Access control
Supported databases

Databases are used to store package metadata.

  • Memory
  • MongoDB
Supported storages

Storages are used to store package tarballs.

  • Memory
  • MongoDB

Feel free to open an issue or provide a pull request if you need a support for any other feature, database or storage provider.



Installation

Docker is the preferred way to use NPR.

docker run -p 8080:8080 pkgems/npm-package-registry

Alternatively, binaries of different platforms can be found on Releases section.



Configuration

Configuration can be managed either by CLI flags or environment variables.

Options Env Default Description
--listen <address> NPR_LISTEN_ADDRESS locahost:8080 Address to listen
--silent NPR_SILENT 0 Disable logs
--database <name> NPR_DATABASE memory Database to use (list)
--storage <name> NPR_STORAGE memory Storage to use (list)


Programmatic usage

NPR provides registry, adapter and handler go packages that can be used programmatically. Docs are available on godoc.org.

package main

import (
	"log"
	"net/http"

	"github.com/pkgems/npm-package-registry/adapter"
	"github.com/pkgems/npm-package-registry/handler"
	"github.com/pkgems/npm-package-registry/registry"
)

func main() {
	core, err := registry.NewCore(registry.CoreConfig{
		Database: adapter.NewDatabaseMemory(),
		Storage:  adapter.NewStorageMemory(),
	})
	if err != nil {
		log.Fatal(err)
	}

	server := http.Server{
		Handler: handler.Handler(core),
		Addr:    "localhost:8080",
	}

	server.ListenAndServe()
}


Benchmarks

...



License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package cli provides command line interface for npm-package-registry (NPR).
Package cli provides command line interface for npm-package-registry (NPR).
Package handler provides an HTTP handler for npm-package-registry (NPR).
Package handler provides an HTTP handler for npm-package-registry (NPR).
Package registry represents the core logic for npm-package-registry (NPR).
Package registry represents the core logic for npm-package-registry (NPR).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL