{"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"}