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

@browser-network/switchboard

v0.1.3

Published

The switching server required for the onboarding of new nodes into a @browser-network/network

Downloads

23

Readme

The Browser Network Switchboard

This is the switchboard required to facilitate initial connections in a Browser Network.

What is this?

When you first open a web page using a distributed browser network, the app needs some way to find the network before it can join it. This is the service provided to do that. The Switching Service can facilitate a connection between any two nodes within a distributed browser network that are not already connected. So if you're a node who isn't yet connected to the network, you'll ping this switching service to find and connect to another node that's already in the network. Then immediately you'll start receiving connection information from other nodes in the network and you'll rapidly further connect to the network without the continued help of this switching service.

The switching service has negligable processing and memory footprints. It operates only in memory, it doesn't need a database or write to disk in any way. The switching service will be exchanging small JSON data with various nodes in the network so it will use some small bandwidth. But it's important to note that this is not anything like a cryptocurrency miner, the resource usage of the switching service is meant to be as small as possible.

The switching service is also designed to be able to be started and stopped at will without harming the network. The network is robust and self healing and can survive indefinitely without the switching service running, even in unstable WebRTC network conditions (sometimes the connections are unstable). However without at least one switching service running at any time, new nodes will not be able to join the network. So a constantly evolving network, as the network is intended to be, requires at least one switching service running at any point in time.

Features

  • No websockets -- This switching scheme works by regular HTTP request only. That means no extra libraries and trivial switchboard implementations. It also means the network doesn't depend on the switchboard to stay alive. Once the network is up and running, it stays healthy without the help of a switchboard. The switchboard is just a gatekeeper to let new nodes find the network. Picture it like an old man who can't lift that much but can open the gate :)

Running

You can skip installation entirely and just run this with:

PORT=5678 npx @browser-network/switchboard