Node wrapper for hiredis
Branch: master
Clone or download
Latest commit b8f3af6 Jun 11, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
deps Rename library to compile on Windows Apr 3, 2015
src
test
.gitignore gitignore: ignore "node_modules" Jul 11, 2012
.gitmodules
.travis.yml chore(CI): Drop v0.8 from test matrix May 4, 2016
CHANGELOG.md Release v0.5.0 Jun 11, 2016
COPYING Bump copyright year Aug 28, 2012
Makefile
README.md Update installation requirements Jan 20, 2016
appveyor.yml chore(CI): Same test matrix for windows builds May 5, 2016
bench.js
binding.gyp Rename library to compile on Windows Apr 3, 2015
hiredis.js Bufferify writeCommand, fixes failing write tests. Jan 22, 2015
package.json

README.md

Build Status

hiredis-node

Node extension that wraps hiredis. Because Node is already good at doing I/O, hiredis-node only provides bindings to the protocol parser. The hiredis protocol parser is faster than JavaScript protocol parsers, but the speedup only becomes noticeable for large replies. If you use Redis for simple SET/GET operations, there won't be a big benefit to using hiredis. If you use Redis for big SUNION/SINTER/LRANGE/ZRANGE operations, the benefit to using hiredis-node can be significant.

Install

Install with NPM:

npm install hiredis

This requires:

  • gcc / g++ 4.8 or newer.
  • python 2.7 or any newer 2.x version. python 3.x is not supported.

For running on Travis check the bundled .travis.yml.

Contribute

To work on the code, first fetch the bundled hiredis submodule, then build hiredis and run the tests.

git submodule update --init
npm install
npm test

Usage

hiredis-node works out of the box with Matt Ranney's node_redis. The latter has an optional dependency on hiredis-node, so maybe you're already using it without knowing.

Alternatively, you can use it directly:

var hiredis = require("hiredis"),
    reader = new hiredis.Reader();

// Data comes in
reader.feed("$5\r\nhello\r\n");

// Reply comes out
reader.get() // => "hello"

Instead of returning strings for bulk payloads, it can also return buffers:

var hiredis = require("hiredis"),
    reader = new hiredis.Reader({ return_buffers: true });

// Data comes in
reader.feed("$5\r\nhello\r\n");

// Reply comes out
reader.get() // => <Buffer 68 65 6c 6c 6f>

Windows

Since Version 0.3.0 hiredis-node officially supports Windows. A simple npm install hiredis should just work. If not, please open a bug report.

There's also a Windows fork by Dmitry Gorbunos (@fuwaneko), which should now be unnecessary.

License

This code is released under the BSD license, after the license of hiredis.