{
  "name": "streamsearch",
  "version": "0.1.2",
  "author": {
    "name": "Brian White",
    "email": "mscdex@mscdex.net"
  },
  "description": "Streaming Boyer-Moore-Horspool searching for node.js",
  "main": "./lib/sbmh",
  "engines": {
    "node": ">=0.8.0"
  },
  "keywords": [
    "stream",
    "horspool",
    "boyer-moore-horspool",
    "boyer-moore",
    "search"
  ],
  "licenses": [
    {
      "type": "MIT",
      "url": "http://github.com/mscdex/streamsearch/raw/master/LICENSE"
    }
  ],
  "repository": {
    "type": "git",
    "url": "http://github.com/mscdex/streamsearch.git"
  },
  "readme": "Description\n===========\n\nstreamsearch is a module for [node.js](http://nodejs.org/) that allows searching a stream using the Boyer-Moore-Horspool algorithm.\n\nThis module is based heavily on the Streaming Boyer-Moore-Horspool C++ implementation by Hongli Lai [here](https://github.com/FooBarWidget/boyer-moore-horspool).\n\n\nRequirements\n============\n\n* [node.js](http://nodejs.org/) -- v0.8.0 or newer\n\n\nInstallation\n============\n\n    npm install streamsearch\n\nExample\n=======\n\n```javascript\n  var StreamSearch = require('streamsearch'),\n      inspect = require('util').inspect;\n\n  var needle = new Buffer([13, 10]), // CRLF\n      s = new StreamSearch(needle),\n      chunks = [\n        new Buffer('foo'),\n        new Buffer(' bar'),\n        new Buffer('\\r'),\n        new Buffer('\\n'),\n        new Buffer('baz, hello\\r'),\n        new Buffer('\\n world.'),\n        new Buffer('\\r\\n Node.JS rules!!\\r\\n\\r\\n')\n      ];\n  s.on('info', function(isMatch, data, start, end) {\n    if (data)\n      console.log('data: ' + inspect(data.toString('ascii', start, end)));\n    if (isMatch)\n      console.log('match!');\n  });\n  for (var i = 0, len = chunks.length; i < len; ++i)\n    s.push(chunks[i]);\n\n  // output:\n  //\n  // data: 'foo'\n  // data: ' bar'\n  // match!\n  // data: 'baz, hello'\n  // match!\n  // data: ' world.'\n  // match!\n  // data: ' Node.JS rules!!'\n  // match!\n  // data: ''\n  // match!\n```\n\n\nAPI\n===\n\nEvents\n------\n\n* **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).\n\n\nProperties\n----------\n\n* **maxMatches** - < _integer_ > - The maximum number of matches. Defaults to Infinity.\n\n* **matches** - < _integer_ > - The current match count.\n\n\nFunctions\n---------\n\n* **(constructor)**(< _mixed_ >needle) - Creates and returns a new instance for searching for a _Buffer_ or _string_ `needle`.\n\n* **push**(< _Buffer_ >chunk) - _integer_ - Processes `chunk`. The return value is the last processed index in `chunk` + 1.\n\n* **reset**() - _(void)_ - Resets internal state. Useful for when you wish to start searching a new/different stream for example.\n",
  "readmeFilename": "README.md",
  "_id": "streamsearch@0.1.2",
  "dist": {
    "shasum": "808b9d0e56fc273d809ba57338e929919a1a9f1a",
    "tarball": "http://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz"
  },
  "_from": "streamsearch@0.1.2",
  "_resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
  "scripts": {},
  "_npmVersion": "1.2.18",
  "_npmUser": {
    "name": "mscdex",
    "email": "mscdex@mscdex.net"
  },
  "maintainers": [
    {
      "name": "mscdex",
      "email": "mscdex@mscdex.net"
    }
  ],
  "directories": {},
  "_shasum": "808b9d0e56fc273d809ba57338e929919a1a9f1a"
}
