lredis icon indicating copy to clipboard operation
lredis copied to clipboard

A redis client for lua

Redis library for Lua

Features

  • Optionally asynchronous
  • Compatible with Lua 5.1, 5.2, 5.3 and LuaJIT
  • Subscribe (PubSub) mode
  • Automatic pipelining (if you use more than one coroutine)

Why not _________?

  • redis-lua?
    • Not asynchronous
    • Relies on luasocket
    • Architecture doesn't support subscribe mode
  • lluv-redis?
    • Requires lluv/libuv
  • lua-resty-redis?
    • Only works inside of openresty/nginx
  • lua-hiredis?
    • Not asynchronous
    • Relies on hiredis C module
    • Architecture doesn't support subscribe mode
  • lua_redis
    • Not asynchronous
    • Relies on hiredis C module
    • Architecture doesn't support subscribe mode
  • sidereal?
    • Unmaintained
    • Asynchronous mode not really composable
    • Relies on luasocket
  • fend-redis?
    • Unmaintained
    • Relies on hiredis C module
    • requires ffi

Status

This project is a work in progress and not ready for production use.

Build Status Coverage Status

Installation

It's recommended to install lredis by using luarocks. This will automatically install run-time lua dependencies for you.

$ luarocks install --server=http://luarocks.org/dev lredis

Dependencies

For running tests

Development

Getting started

  • Clone the repo:

    $ git clone https://github.com/daurnimator/lredis.git
    $ cd lredis
    
  • Install dependencies

    $ luarocks install --only-deps lredis-scm-0.rockspec
    
  • Lint the code (check for common programming errors)

    $ luacheck .
    
  • Run tests and view coverage report (install tools first)

    $ busted -c
    $ luacov && less luacov.report.out
    
  • Install your local copy:

    $ luarocks make lredis-scm-0.rockspec