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

debussy

v2.0.0

Published

simple, fast, and efficient file reader, line by line

Downloads

12

Readme

debussy

Simple, fast, and efficient file reader - line by line

Installation

npm install debussy --save

Overview

You want to read files line by line. And you cannot be bothered with memory limitations because of the size of the file.

This module neatly does the trick for you, even if you need to parse a 20 GB log file.

Usage

const Debussy = require('debussy');
const FileReader = new Debussy('/path/to/file');

// or pass in options to override defaults.
// refer to fs.createReadStream() documentation.
const FileReader = new Debussy(filename, {encoding: 'utf-8'});

FileReader.on('line', line => {
  // process line...

  // found what you need; stop the stream.
  FileReader.stop();
});

FileReader.on('end', () => {
  // do whatever you want after last line has been read...
});

As of node v6.2.0, import statement still not implemented. And not gonna complicate things transpiling to ES5.

Technical Notes

We're using node's built-in streaming, readline, and event emit tech. The module is very small. The inspiration for creating this npm package was so I wouldn't have to keep looking up and repeating the same stream and readline node syntax every time I needed to parse a file.

Why Name the Module Debussy?

After researching similar npm modules, I discovered I really didn't have to write this at all and I could be using someone else's npm package instead. But that's no fun. Also, I get to make my interface the way I think it should be done. And giving the module a name which represented its functionality would have lost my version in a sea of names like file-reader, line-read, file-line-read, stream-line-reader, line-reader-stream, read-by-line, reader-line-stuff, etc.

I therefore paid homage to one of the greatest composers.

Enjoy!

Gerry Gold May 2016