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

wfdb

v0.0.9

Published

Library for accessing WaveForm DataBase files.

Readme

WFDB for node.js

Getting Started

  • Make sure you've installed node.js and npm

  • Clone this repo

git clone https://github.com/jeffplourde/wfdb.git
cd wfdb
  • Install dependencies
npm install
  • Run unit tests
npm test
  • Retrieve and decode Physiobank records
node examples/main.js mghdb/mgh001

Rationale

Realtime physiological data visualization and analysis will inevitably come to the world of HTML5 and node.js. I wrote this code to facilitate experiments in that area by providing large datasets to test the large and modern data pipes of the world wide web. Ten years ago these datasets were only manageable for research but in the IoT era of both "big" and "fast" data such datasets will become the life's blood of our healthcare and public health systems.

Unit Testing

Unit tests use tranches of data from real-world data sets; typically 10 samples per signal. Testing is

Caveats

  • This is NOT intended for production use. This project is a personal experiment of my and is in no way endorsed by anyone.

  • This is an experimental package for reading some wfdb formatted files from node.js. I have only experimented with a few data sets so far. DO NOT trust this library to correctly interpret WFDB data until it has had more vetting.

  • Only raw data signals are currently read (no annotations or other data) with limitations on supporting all the various options of the WFDB format.

References

My primary reference in developing this has been

  • http://www.physionet.org/physiotools/wag/header-5.htm
  • http://www.physionet.org/physiotools/wag/signal-5.htm

I made an abortive effort to utilize the standard WFDB library by adapting the existing SWIG work to JavaScript. If anyone else has had greater success with this approach please let me know.

Currently supported are signal formats 16, 80, and 212.

I've tested with databases available from Physiobank using the powerful Physiobank ATM tool. Specifically...

  • aami-ec13
  • ahadb
  • apnea-ecg
  • chfdb
  • drivedb
  • mghdb
  • mimic2wdb
  • mimicdb
  • mitdb

In its default configuration the "main" program will cache data files from "http://physionet.org/physiobank/database/" into a subdirectory called "data/" in the local file system. Subsequent reads of the same record will derive data from the local cache to ease the load on the physiobank servers. For information on Physionet public domain licensing please visit their home page. main.js will first show the header information decoded and then each signal tab-delimited with each sequential sample set on a new line.