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

mushroom

v0.0.4

Published

Mushroom sprouts a never-ending set of child processes which can report statistics back to the host. Like multi-process forever.

Downloads

8

Readme

Mushroom

Manages multiple Node processes better than forever+cluster

** Alpha, use at your own risk **

Mushroom is like forever combined with cluster. It succinctly provides the ability to launch a Node process to serve on a port and restart it when it crashes, while providing a simple way for child processes to report performance data to the master.

Mushroom offers:

  • The means to keep one or more Node instances alive even when they crash
  • Performance and health tracking of instances

Child processes report back to the master over HTTP (intentionally not IPC or a pipe) with status information, like memory used and a tally of performance events. Child process stdout and stderr are also consumed and aggregated by the master. Mushroom is intended for scenarios where a load balancer (e.g. nginx or hardware) balances to one or many servers, each with a Mushroom master which controls many processes ("spores") on known ports. It is possible to make the master act as the load balancer but Mushroom was designed for an external one for reasons of performance, low latency and scalability.

Installation

npm install mushroom

Usage

** Master (e.g. master.js) **

var shroom = require("mushroom").shroom;

shroom.spawn(["main.js"], 2000);
shroom.spawn(["main.js"], 2001);
shroom.spawn(["main.js"], 2002);

** Spore (e.g. main.js) **

var spore = require("mushroom").spore();
var http = require("http");

http.createServer(function(request, response)
{
	spore.tally("hit", 1, {url: request.url});
	
}).listen(spore.port);