Hiboris a utility module to load Hiredis native parser or to fall back to Boris a pure JS parser.
npm install hiboris



!NODE VERSION




!NPM YEARLY

> _Hiboris_, a utility module to load __hiredis__ _native parser_, or to fall back to __Boris__, _a pure JS parser_.
> __NOTE__: This module was developed for and used by __♠ Spade__, a __full-featured__ modular client for __Redis__.
``bash`
$ npm install hiboris [-g]
// clone repo
$ git clone git@github.com:rootslab/hiboris.git
__install and update devDependencies (hiredis)__:
`bash`
$ cd hiboris/
$ npm install
# update
$ npm update
> __require__:
`javascript`
var Hiboris = require( 'hiboris' );
> __NOTE__: Install _devDependencies_ before running tests, see above.
`bash`
$ cd hiboris/
$ npm test
> Create an instance, the argument within [ ] is optional.
`javascript`
/*
* NOTE: if hiredis module is not available, it falls back
* to use pure JS parser, and returns an instance of Boris.
*/
Hiboris( [ Object opt ] ) : Hiboris | Boris
// or
new Hiboris( [ Object opt ] ) : Hiboris | Boris
#### Options
> Default options are listed.
`javascript
opt = {
/*
* For default the hiredis native parser is disabled.
*/
hiredis : false
/*
* For default, the parser returns strings instead of buffers,
* returning buffers will slowdown hiredis parsing of about ~60%.
*/
, return_buffers : false
}
`
> See examples.
> Arguments within [ ] are optional.
`javascript
/*
* parse a chunk of data.
*/
Hiboris#parse( Buffer data ) : undefined
/*
* reset parser state.
*/
Hiboris#reset() : undefined
`
`javascript
/*
* Parser has found some data.
*
* NOTE: The 'convert' function argument is a shortcut to Bolgia#reveal
* utility, it scans an array and turns all Buffers into Strings or Numbers.
*
* NOTE: the boolean 'isError' signals a Redis error reply, not a runtime Error.
*/
'match' : function ( Boolean isError, Array result, Function convert ) : undefined
/*
* A parsing error has occurred.
*
* NOTE: on error, parser state will be reset.
*/
'error' : function ( Error err ) : undefined
``
------------------------------------------------------------------------
> Copyright (c) 2013-present < Guglielmo Ferri : 44gatti@gmail.com >
> Permission is hereby granted, free of charge, to any person obtaining
> a copy of this software and associated documentation files (the
> 'Software'), to deal in the Software without restriction, including
> without limitation the rights to use, copy, modify, merge, publish,
> distribute, sublicense, and/or sell copies of the Software, and to
> permit persons to whom the Software is furnished to do so, subject to
> the following conditions:
> __The above copyright notice and this permission notice shall be
> included in all copies or substantial portions of the Software.__
> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.