v2.0.4 (2012-07-15)
  * The library is now fully compatible with Lua 5.2.

  * Implemented some small optimizations in the handling of the Redis protocol.

  * Client instances can be initialized with an already connected socket using
    the `socket` field in the parameters table (it takes the precedence over
    other fields such as `host`, `port` or `path`).

  * The module now exposes its default command table in the `commands` field.

  * It is available a new way to define custom Redis commands on a module or
    client-level instance. The old way is still in place but it is considered
    deprecated and will be removed in the next major release. For more details
    see `examples/define_commands.lua` and the test suite.

v2.0.3 (2012-04-01)
  * It is now possible to require redis-lua by assigning the returned module
    to a local variable like `local redis = require 'redis'`. Starting with
    this release this is the preferred way to require redis-lua. The `Redis`
    global name is still available for backwards compatibility but it will
    be removed in the next major version.

  * Changed to using an error function per client instead of a global one.

  * Added an abstraction for MONITOR that makes possible to consume messages
    the messages returned by Redis using a coroutine-based iterator.

  * Implemented all the new commands of Redis 2.6.

  * Implemented `CONFIG GET`, `CONFIG SET`, `CONFIG RESETSTAT` and `SLOWLOG`.

  * In order to support the variadic flavor of certain commands implemented
    in Redis >= 2.4, now `SADD`, `SREM`, `ZADD`, `ZREM` and `HDEL` now return
    the number of elements involved by the respective operation instead of a
    boolean value.

  * Fixed the parsing of INFO replies returned by Redis 2.6.

v2.0.2 (2011-06-20)
  * Added an abstraction for PUB/SUB that makes possible to consume messages
    pushed to channels using a coroutine-based iterator.

  * Added support for connecting to Redis using UNIX domain sockets when they
    are available in LuaSocket.

v2.0.1 (2011-01-24)
  * Vastly improved abstraction for Redis transactions (MULTI/EXEC) supporting
    check-and-set (CAS), automatic retries upon transaction failures and a few
    optional arguments for initialization (enable CAS support, list of keys to
    watch automatically and number of attempts upon failed transactions). The
    public interface is completely backwards compatible with previous versions.

  * Pipelines and transactions return the number of commands processed as the
    second return value, useful for iterating over a returned list of replies
    that contains holes (nil values).

  * Since SORT can accept multiple GET parameters, redis:sort() has been
    modified accordingly to accept either a string or a table for the 'get'
    parameter.

v2.0.0 (2010-11-27)
  * The client library is no longer compatible with Redis 1.0.

  * Support for long names of Redis commands has been dropped, the client now
    uses the same command names as defined by Redis.

  * Inline and bulk requests are not supported anymore and the related code
    has been removed from the library. Commands are defined as multibulk
    requests by default.

  * The public interface for pipelining has been slightly changed (see the
    examples/pipeline.lua file for more details).

  * The public interface for Redis transactions (MULTI/EXEC) basically works
    in the same way of pipelining.

  * Developers can now define their own commands at module level and not only
    on client instances.

v1.0.1 (2010-07-30)
  * Providing a more generalized version of the multibulk request serializer.

  * _G is now passed as the argument of a pipeline block. This will change in
    a future major release of redis-lua, but for now it is useful to enable
    the usage of global functions inside of a pipeline block.

  * Fix: user-added commands were not available when pipelining commands.

v1.0.0 (2010-06-02)
  * First versioned release of redis-lua
