Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

jimbly-tail-stream

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jimbly-tail-stream

Continuous file tail to stream

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

node-tail-stream

Continuous file tail as a stream. Handles file truncation, but not yet file rollover (old file being deleted/moved and a new file with the same name replacing it).

Differences from tail-stream

Somehow, despite searching, I failed to find this existing module before authoring my own. The only key difference is that this new module handles broken pipes slightly more elegantly, with some automatic cleanup and a manual close to prevent leaking of FSWatchers. Other than that, the existing module has a lot more functionality and robustness.

Usage

Use tail_stream.createReadStream just like fs.createReadStream except the stream will not end but continue emitting data as the backing file grows.

Example

// Pipe the tail stream to stdout
var tail_stream = require('tail-stream');
var stream = tail_stream.createReadStream('example.txt', {interval: 100});
stream.pipe(process.stdout);

For an example of using this to tail stream a file to an http request, see the example under Caveats.

Caveats

Due to the Streams API in node, we do not know if our Readable stream was piped into something which has now been closed, and our TailStream will stay active (leaving the program running and also with an active FSWatcher which may be consuming significant CPU) unless explicitly closed. We automatically recover if the stream was not at the end of the file we're streaming or if the file we're streaming continues to be modified, but a stale, unchanging file will leave a FSWatcher (due to an outstanding Readable Stream ._read call) unless explicitly closed.

Example:

require('http').createServer(function (req, res) {
  var stream = require('tail-stream').createReadStream('example.txt');
  stream.pipe(res);
  res.on('end', function() {
    stream.close();
  });
}).listen(1337, '127.0.0.1');

Keywords

FAQs

Package last updated on 06 Feb 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc