streamsearch

WebJar for streamsearch

License

License

MIT
Categories

Categories

Search Business Logic Libraries
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

streamsearch
Last Version

Last Version

0.1.2
Release Date

Release Date

Type

Type

jar
Description

Description

streamsearch
WebJar for streamsearch
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/mscdex/streamsearch

Download streamsearch

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/streamsearch/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>streamsearch</artifactId>
    <version>0.1.2</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/streamsearch/
implementation 'org.webjars.npm:streamsearch:0.1.2'
// https://jarcasting.com/artifacts/org.webjars.npm/streamsearch/
implementation ("org.webjars.npm:streamsearch:0.1.2")
'org.webjars.npm:streamsearch:jar:0.1.2'
<dependency org="org.webjars.npm" name="streamsearch" rev="0.1.2">
  <artifact name="streamsearch" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='streamsearch', version='0.1.2')
)
libraryDependencies += "org.webjars.npm" % "streamsearch" % "0.1.2"
[org.webjars.npm/streamsearch "0.1.2"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

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.

Versions

Version
0.1.2