npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

archiver-server

v2.2.0

Published

Serve keys found in a `hypercore-archiver` with `discovery-swarm`.

Downloads

8

Readme

Archiver-Server

Serve Dat Archives stored in a hypercore-archiver.

Archives can be served over HTTP and the Dat Network (via discovery-swarm).

Usage

Serve on Dat Network

Serve archives in a hypercore-archiver with discovery-swarm.

var Archiver = require('hypercore-archiver')
var archiverServer = require('archiver-server')

var archives = Archiver('archives', {swarm: true})
var datServer = archiverServer(archives)

datServer.swarm.on('listening', function () {
  console.log('Listening for connections on the Dat Network')
})

// (Later) Any archives added will be available over discovery-swarm network
archives.add(key)

Serve Over HTTP

var http = require('http')
var Archiver = require('hypercore-archiver')
var archiverServer = require('archiver-server')

var archiver = Archiver('archives')
var datServer = archiverServer(archiver, {http: true})

// Bring your own HTTP server and handle requests
var server = http.createServer()
server.on('request', datServer.httpRequest)
server.listen(argv.httpPort, function () {
    console.log('Server is listening on port ' + port)
})

// (Later) Any archives added will be available over HTTP
archives.add(key)

CLI

Archiver-server provides a basic CLI utility. There is currently no interface to add/remove archives to the hypercore-archiver, so it may be difficult to add use the CLI except for testing on preexisting archiver directories.

Run npm start to run the CLI in debug mode.

Options:

  • --httpPort 8080: Port for HTTP server
  • --datPort 3282: Port for Dat Network
  • --archiveDir dats: Directory for hypercore-archiver storage
  • --swarm (boolean): Serve archives on the Dat Network
  • --http (boolean): Serve archives over HTTP

API

var server = archiverServer(archiver, [opts])

Create a server for a hypercore-archiver. Use http and swarm to specify which server types to use.

Options include:

opts = {
  http: true, // Return onrequest function to serve over HTTP
  swarm: true, // Serve over Dat Network
  utp: true, // Passed to Discovery-Swarm
  tcp: true, // Passed to Discovery-Swarm
  datPort: 3282 // Passed to Discovery-Swarm
}

server.swarm

discovery-swarm for your archives. Automatically connects.

server.httpRequest

Bring your own HTTP server. Use server.httpRequest for your http server's request function.

HTTP requires hypercore-archiver ^2.3.0.

License

MIT