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 🙏

© 2026 – Pkg Stats / Ryan Hefner

mqtt-bridge

v0.7.0

Published

Simple bridge to stream MQTT Broker data to dynamically defined back-ends

Readme

mqtt-bridge

This fully configurable MQTT bridge subscribes to MQTT broker for defined topic and streams messages published to that topic to dynamically defined backends. The configured backends subscribe to simple data and flush events which give them access to the message topic and content whenever new messages for the defined topic arrive.

Supported backends:

  • Console (default)
  • Redis
  • statsd
  • RethinkDB
  • TempoDB (alpha)
  • Graphite
  • AWS Kinesis
  • Graphite
  • Xively

New backends will be added, if you don't see what you need, contribute.

Configuration

The app includes a sample configuration file: config-sample.json. Simply rename that file to config.json and edit the portent elements:

MQTT

If your broker does not require secure client, simply switch the secure and remove the no longer needed elements from the args: keyPath, certPath. If no authentication is required you can further remove the username and password arguments. For each one of these use-cases, the MQTT broker will also need require a different port.

"mqtt": {
	"secure": true,
	"topic": "#",
	"host": "mqtt.mydomain.com",
	"port": 8884,
	"args": {
		"clientId": "mqtt-bridge",
		"keyPath": "./certs/client.key",
		"certPath": "./certs/client.crt",
		"username": "sampleuser",
		"password": "samplepassword",
		"keepalive": 59000
	}
}

The small keepalive is to workaround for AWS ELB timeouts. Feel free to increase that number if you are not load-balancing the MQTT broker.

Backends

For each backend, you must define two arguments: handler with the implementation file (probably located in the backends directory) and the config arguments for that backend. These will be anything the backend requires.

"backends": [

	{
		"handler": "./backends/some-backend.js",
		"config": {
			"arg": "val"
		}
	}

]

Remember, some backends require additional installation before the initial run.

Logging

To change the verbosity of console logging, you can alter the level argument. See winston documentation for mqtt-bridge supported levels (debug, info, warn, error).

"log": {
	"level": "debug",
	"timestamp": true
}

Installation

$ npm install mqtt-bridge

Standalone Usage

To run the mqtt-bridge as a standalone app, simply use the provided start-bridge.sh scripts which will provision forever to assure continuous uptime.

$ ./start-bridge.sh

To stop the service either the stop command in forever or simply execute the provided script

$ ./stop-bridge.sh

Contribute

Contributions, new/improved backbends or otherwise, are welcomed:

  • Fork the project
  • Improve (comments would be nice)
  • Commit to your repo
  • Issue a pull request in github's web interface