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

hyper-gateway

v3.6.0

Published

A gateway for talking to hypercore-protocol using the same URL structures as Agregore

Downloads

11

Readme

hyper-gateway

A gateway for talking to hypercore-protocol using the same URL structures as Agregore.

Usage

npm i -g hyper-gateway
hyper-gateway run

Options: hyper-gateway --help run

hyper-gateway run

Run the gateway

Options:
  --version             Show version number                            [boolean]
  --help                Show help                                      [boolean]
  --writable            Control access to `PUT`       [boolean] [default: false]
  --port                The port to run the server on (HYPE)     [default: 4973]
  --persist             Whether data should be persisted to disk
                                                       [boolean] [default: true]
  --storage-location    The location to store hypercore data
                      [default: "/home/mauve/.local/share/hyper-gateway-nodejs"]
  --silent              Prevent additional logs       [boolean] [default: false]
  --subdomain           Enable serving `example-com.gateway.com/path` as `gatewa
                        y.com/hyper/example.com/path` [boolean] [default: false]
  --subdomain-redirect  Redirect `gateway.com/hyper/domain.here/path` to `domain
                        -here.gateway.com/path`       [boolean] [default: false]

Routes

GET http://localhost/4973/hyper/:key/*path

You can load data from the gateway by specifying a Hyperdrive key and a path to a file or folder.

The specific HTTP verbs and headers that are supported can be found in hypercore-fetch. Basically you can replace the hyper:// in a URL with http://localhost:4973/hyper/ and it'll work.

Subdomain / Subdomain-Redirect

When serving contents on a gateway, some sites may be using absolute URLs (e.g. /script.js) which can be messed up when the data is being served from a subdomain (e.g. http://some-gateway.com/hyper/key_here/).

In order to account for this you can add the --subdomain flag which is based on the IPFS Subdomain Gateway Spec, but applied to hyper.

If your domain is https://example.com, instead of using https://example.com/hyper/blog.mauve.moe/index.html to reference a URL, you can instead use https://blog-mauve-moe.example.com/index.html.

You may also place a hypercore public key into the subdomain to have similar effects.

You can also specify the --subdomain-redirect flag which will automatically perform a 301 HTTP redirect to the subdomain version of a URL when a user attempts to load the /hyper/ path.

Building native binaries

Hyper-gateway uses the pkg module to compile the node.js code into a single binary that you can distribute on a server.

  • git clone [email protected]:RangerMauve/hyper-gateway.git
  • Install node.js if you haven't already
  • npm install
  • npm run build
  • Look in the dist folder for the platform you want.

FAQ

How do I install hyper-gateway?

Download the latest release for your operating system, move it to your PATH, and make it executable.

On GNU/Linux systems, you can use:

# Paste this into an interactive bash or zsh shell, or save it as a file and run it with sh.

mkdir -p ~/.local/bin/
cd ~/.local/bin/
curl -Lo hyper-gateway https://github.com/RangerMauve/hyper-gateway/releases/latest/download/hyper-gateway-linux
chmod 744 hyper-gateway

How do I run hyper-gateway as a background process on GNU/Linux + SystemD?

# Paste this into an interactive bash or zsh shell, or save it as a file and run it with sh.

# This will create the service file.
cat << EOF > ~/.local/share/systemd/user/hyper-gateway.service
[Unit]
Description=hypercore-protocol gateway daemon (for hyperdrive)
Documentation=https://github.com/RangerMauve/hyper-gateway

[Service]
Type=exec
ExecStart=%h/.local/bin/hyper-gateway --writable true --silent true run
EOF

chmod 644 ~/.local/share/systemd/user/hyper-gateway.service

systemctl --user daemon-reload
systemctl --user start hyper-gateway.service
systemctl --user status hyper-gateway.service