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

castv2-web

v0.0.3

Published

Castv2 client to send web content to a cast receive app

Readme

castv2-web

Cast sender that sends a url togheter to a refresh rate to be show a web in a cast screen. For now works with the receiver developed by boombatower, that will be chromecast-dashboard.

Sample

var Client                = require('castv2-client').Client;
var Web                   = require('castv2-web').Web;
var mdns                  = require('mdns');

var browser = mdns.createBrowser(mdns.tcp('googlecast'));

browser.on('serviceUp', function(service) {
  console.log('Found device ',service.name, ' at ', service.addresses[0], ':', service.port);
  ondeviceup(service.addresses[0]);
  browser.stop();
});

browser.start();

function ondeviceup(host) {
  var client = new Client();
  client.connect(host, function() {
    console.log('Connected');
    client.launch(Web, function(err, manager) {
      console.log('Dashboard Launched');
      manager.load('https://www.npmjs.com/package/castv2-web');
    });
  });
}

You can set a refresh rate, so that the receiver will update every X seconds manager.load(url, 10);

Limitations

Note that this receiver has a limitation around the frame-ancestors directive and X-Frame-Options header. So the webpages that don't like being embeded in a ifram won't show.

Ubuntu/Debian

Due to incompatibilities of node-mdns with Ubuntu/Debian (issues with Raspberry Pi and Ubuntu 14.04) I recomend using the mdns-js implementation for discovery. The same example it will be:

var Client                = require('castv2-client').Client;
var Web                   = require('castv2-web').Web;
var mdns = require('mdns-js');

var browser = mdns.createBrowser('_googlecast._tcp');

browser.on('ready', function () {
    console.log('ready');
    browser.discover();
});

browser.on('update', function (data) {
    ondeviceup(data.addresses[0]);
    browser.stop();
});

function ondeviceup(host) {
  var client = new Client();
  client.connect(host, function() {
    console.log('Connected');
    client.launch(Web, function(err, manager) {
      console.log('Dashboard Launched');
      manager.load('https://www.npmjs.com/package/castv2-web');
    });
  });
}

Installation

npm install castv2-web