Nihilist Postmodern Mistake
    Wondering what’s next for npm?Check out our public roadmap! »

    streamsearch

    0.1.2 • Public • Published

    Description

    streamsearch is a module for node.js that allows searching a stream using the Boyer-Moore-Horspool algorithm.

    This module is based heavily on the Streaming Boyer-Moore-Horspool C++ implementation by Hongli Lai here.

    Requirements

    Installation

    npm install streamsearch
    

    Example

      var StreamSearch = require('streamsearch'),
          inspect = require('util').inspect;
     
      var needle = new Buffer([13, 10]), // CRLF
          s = new StreamSearch(needle),
          chunks = [
            new Buffer('foo'),
            new Buffer(' bar'),
            new Buffer('\r'),
            new Buffer('\n'),
            new Buffer('baz, hello\r'),
            new Buffer('\n world.'),
            new Buffer('\r\n Node.JS rules!!\r\n\r\n')
          ];
      s.on('info', function(isMatch, data, start, end) {
        if (data)
          console.log('data: ' + inspect(data.toString('ascii', start, end)));
        if (isMatch)
          console.log('match!');
      });
      for (var i = 0, len = chunks.length; i < len; ++i)
        s.push(chunks[i]);
     
      // output:
      //
      // data: 'foo'
      // data: ' bar'
      // match!
      // data: 'baz, hello'
      // match!
      // data: ' world.'
      // match!
      // data: ' Node.JS rules!!'
      // match!
      // data: ''
      // match!

    API

    Events

    • info(< boolean >isMatch[, < Buffer >chunk, < integer >start, < integer >end]) - A match may or may not have been made. In either case, a preceding chunk of data may be available that did not match the needle. Data (if available) is in chunk between start (inclusive) and end (exclusive).

    Properties

    • maxMatches - < integer > - The maximum number of matches. Defaults to Infinity.

    • matches - < integer > - The current match count.

    Functions

    • (constructor)(< mixed >needle) - Creates and returns a new instance for searching for a Buffer or string needle.

    • push(< Buffer >chunk) - integer - Processes chunk. The return value is the last processed index in chunk + 1.

    • reset() - (void) - Resets internal state. Useful for when you wish to start searching a new/different stream for example.

    Keywords

    none

    Install

    npm i streamsearch

    DownloadsWeekly Downloads

    4,177,546

    Version

    0.1.2

    License

    none

    Last publish

    Collaborators

    • avatar