HTTP request handler for Hyperdrive and Hypercore
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore create hyperdrive http module Jun 24, 2016
index.js only set header if not already sent (#46) Nov 14, 2018
package.json 4.3.4 Nov 14, 2018

Hyperdrive Http

Serve a hyperdrive archive over HTTP. For an example of use, see



Hyperdrive-http returns a function to call when you receive a http request:

var server = http.createServer()
server.on('request', hyperdriveHttp(archive))


To use hyperdrive-http you will need to:

  • Create your own http server
  • Setup your hyperdrive archive
  • For remote archives, connect to the swarm


Hyperdrive works with many archives/feeds or a single archive.


  • exposeHeaders - If set to true, hyperdrive-http will add custom Hyperdrive- HTTP headers to directory listing requests (default: false):
    Hyperdrive-Key: de2a51bbaf8a5545eff82c999f15e1fd29637b3f16db94633cb6e2e0c324f833
    Hyperdrive-Version: 4
  • live - If set to true will reload a directly listing if the archive receives updates.
  • footer - Add a footer to your HTML page. Automatically adds archive version number to footer.

URL Format

Hyperdrive-http responds to any URL with a specific format. If the URL does cannot be parsed, it will return a 404.

  • Get archive listing:
  • Get file from archive:

If a directory in the archive contains an index.html page that file is returned instead of the directory listing.


There is also a CLI that can be used for demo + testing. Pass it a dat link or a path to an existing dat folder:

node cli.js <dat-key>
node cli.js /path/do/existing/dat