]> git.saurik.com Git - redis.git/blame - doc/SupportedLanguages.html
full conversion from Lua return value to redis reply. Partial conversion from Redis...
[redis.git] / doc / SupportedLanguages.html
CommitLineData
8fb13ce8 1
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
3<html>
4 <head>
5 <link type="text/css" rel="stylesheet" href="style.css" />
6 </head>
7 <body>
8 <div id="page">
9
10 <div id='header'>
11 <a href="index.html">
12 <img style="border:none" alt="Redis Documentation" src="redis.png">
13 </a>
14 </div>
15
16 <div id="pagecontent">
17 <div class="index">
18<!-- This is a (PRE) block. Make sure it's left aligned or your toc title will be off. -->
19<b>SupportedLanguages: Contents</b><br>&nbsp;&nbsp;<a href="#Supported Languages (DRAFT)">Supported Languages (DRAFT)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#TODO">TODO</a><br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Features Support Matrix">Features Support Matrix</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Version 1.1">Version 1.1</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Version 1.0">Version 1.0</a><br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Client Libraries Reference">Client Libraries Reference</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#as3 (ActionScript 3)">as3 (ActionScript 3)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#redis-clojure (Clojure)">redis-clojure (Clojure)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CL-Redis (Common Lisp)">CL-Redis (Common Lisp)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#erldis (Erlang)">erldis (Erlang)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Go-Redis (Go)">Go-Redis (Go)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#haskell-redis (Haskell)">haskell-redis (Haskell)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Java">Java</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#redis-lua (Lua)">redis-lua (Lua)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Perl">Perl</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#PHP">PHP</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Python">Python</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#txredis">txredis</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#redis-rb (Ruby)">redis-rb (Ruby)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#scala-redis (Scala)">scala-redis (Scala)</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Tcl">Tcl</a>
20 </div>
21
22 <h1 class="wikiname">SupportedLanguages</h1>
23
24 <div class="summary">
25
26 </div>
27
28 <div class="narrow">
29 <h1><a name="Supported Languages (DRAFT)">Supported Languages (DRAFT)</a></h1>Wondering if you can use Redis from your favorite language? Well here is the definitive guide to the available client libraries.<br/><br/>This libraries are intended to expose Redis commands, but you also have the option to use some higher level libraries that provide a <b><a href="ObjectHashMappers.html">Object Hash Mappings</a></b> pretty much the same idea implemented by a classic <b>ORM</b>.<h2><a name="TODO">TODO</a></h2><ul><li> Add <a href="http://github.com/madsimian/em-redis" target="_blank">http://github.com/madsimian/em-redis</a></li><li> Add <a href="http://github.com/besquared/redis-datastructures" target="_blank">http://github.com/besquared/redis-datastructures</a></li><li> Add <a href="http://github.com/sma/redis-node-client" target="_blank">http://github.com/sma/redis-node-client</a></li></ul>
30<h2><a name="Features Support Matrix">Features Support Matrix</a></h2> <br/><br/>The following matrix should give you a quick overviwe of the state of the different client libraries existing for each supported language.<br/><br/>The core command set is the one of Version 1.0, while <a href="Sharding.html">Sharding</a> and <a href="Pipelining.html">Pipelining</a> are convenient client side features not tied to any Redis server version.<h3><a name="Version 1.1">Version 1.1</a></h3>Compatible client libraries are expected to implement the command sets specified in <b>Version 1.0</b> plus:<br/><br/><ul><li> <b>String</b>: MSET, MSETNX.</li><li> <b>List</b>: RPOPLPUSH.</li><li> <b>Sorted Set (ZSET)</b>: ZADD, ZREM, ZRANGE, ZREVRANGE, ZRANGEBYSCORE, ZCARD, ZSCORE.</li></ul>
abe18d0e 31<h3><a name="Version 1.0">Version 1.0</a></h3> <br/><br/>Compatible client libraries are expected to implement the following command sets:<br/><br/><ul><li> <b>String</b>: GET, SET, SETNX, DEL, EXISTS, INCR, DECR, MGET, INCRBY, DECRBY, GETSET, TYPE.</li><li> <b>List</b>: RPUSH, LPUSH, RPOP, LPOP, LLEN, LINDEX, LSET, LRANGE, LTRIM, LREM.</li><li> <b>Set</b>: SADD, SREM, SMOVE, SISMEMBER, SCARD, SPOP, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SMEMBERS.</li><li> <b>Keyspace</b>: KEYS, RANDOMKEY, RENAME, RENAMENX, DBSIZE, EXPIRE, TTL.</li><li> <b>Databases</b>: SELECT, MOVE, FLUSHDB, FLUSHALL.</li><li> <b>Sort</b>: SORT</li><li> <b>Connection</b>: AUTH, QUIT?. ???</li><li> <b>Persistence</b>: SAVE, BGSAVE, LASTSAVE, SHUTDOWN?. ???</li><li> <b>Server</b>: INFO, MONITOR? SLAVEOF? ???</li></ul><blockquote></blockquote><table><tr><td style="border: 1px solid #aaa; padding: 5px;"> <b>Language</b> </td><td style="border: 1px solid #aaa; padding: 5px;"> <b>Name</b> </td><td style="border: 1px solid #aaa; padding: 5px;"> <b>Sharding</b> </td><td style="border: 1px solid #aaa; padding: 5px;"> <b>Pipelining</b> </td><td style="border: 1px solid #aaa; padding: 5px;"> <b>1.1</b> </td><td style="border: 1px solid #aaa; padding: 5px;"> <b>1.0</b> </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> ActionScript 3</td><td style="border: 1px solid #aaa; padding: 5px;"> as3redis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Clojure </td><td style="border: 1px solid #aaa; padding: 5px;"> redis-clojure </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Partial </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Common Lisp </td><td style="border: 1px solid #aaa; padding: 5px;"> CL-Redis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Erlang </td><td style="border: 1px solid #aaa; padding: 5px;"> erldis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Looks like </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Looks like </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Go </td><td style="border: 1px solid #aaa; padding: 5px;"> Go-Redis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Haskell </td><td style="border: 1px solid #aaa; padding: 5px;"> haskell-redis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Java </td><td style="border: 1px solid #aaa; padding: 5px;"> JDBC-Redis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Java </td><td style="border: 1px solid #aaa; padding: 5px;"> JRedis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Java </td><td style="border: 1px solid #aaa; padding: 5px;"> Jedis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> LUA </td><td style="border: 1px solid #aaa; padding: 5px;"> redis-lua </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Perl </td><td style="border: 1px solid #aaa; padding: 5px;"> Redis Client </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Perl </td><td style="border: 1px solid #aaa; padding: 5px;"> AnyEvent::Redis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> PHP </td><td style="border: 1px solid #aaa; padding: 5px;"> Redis PHP Bindings </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> PHP </td><td style="border: 1px solid #aaa; padding: 5px;"> phpredis (C) </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> PHP </td><td style="border: 1px solid #aaa; padding: 5px;"> Predis </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> PHP </td><td style="border: 1px solid #aaa; padding: 5px;"> Redisent </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Python </td><td style="border: 1px solid #aaa; padding: 5px;"> Python Client </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Python </td><td style="border: 1px solid #aaa; padding: 5px;"> py-redis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Partial </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Python </td><td style="border: 1px solid #aaa; padding: 5px;"> txredis </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Ruby </td><td style="border: 1px solid #aaa; padding: 5px;"> redis-rb </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> Scala </td><td style="border: 1px solid #aaa; padding: 5px;"> scala-redis </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr><tr><td style="border: 1px solid #aaa; padding: 5px;"> TCL </td><td style="border: 1px solid #aaa; padding: 5px;"> TCL </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> No </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td><td style="border: 1px solid #aaa; padding: 5px;"> Yes </td></tr></table>
8fb13ce8 32<h2><a name="Client Libraries Reference">Client Libraries Reference</a></h2><h3><a name="as3 (ActionScript 3)">as3 (ActionScript 3)</a></h3><ul><li> An ActionScript 3 (Flash) library for Redis.</li><li> Repository: <a href="http://github.com/claus/as3redis" target="_blank">http://github.com/claus/as3redis</a></li><li> Author: Claus Wahlers, <a href="http://twitter.com/cwahlers" target="_blank"> @cwahlers</a>.</li></ul>
33<h3><a name="redis-clojure (Clojure)">redis-clojure (Clojure)</a></h3><ul><li> A Clojure client library for the key-value storage system Redis.</li><li> Repository: <a href="http://github.com/ragnard/redis-clojure" target="_blank">http://github.com/ragnard/redis-clojure</a></li><li> Author: Ragnar Dahl&Atilde;&copy;n, <a href="http://twitter.com/ragge" target="_blank">@ragge</a>.</li></ul>
34<h3><a name="CL-Redis (Common Lisp)">CL-Redis (Common Lisp)</a></h3><ul><li> Common Lisp client library for Redis, an advanced key/value store.</li><li> Home Page: <a href="http://www.cliki.net/cl-redis" target="_blank">http://www.cliki.net/cl-redis</a></li><li> Author: Mahmud, <a href="http://twitter.com/BigThingist" target="_blank">@BigThingist</a>.</li></ul>
35<h3><a name="erldis (Erlang)">erldis (Erlang)</a></h3><ul><li> Client protocol for redis key-value store.</li><li> Author: <a href="http://www.adroll.com/" target="_blank">Valentino Volonghi</a>, <a href="http://twitter.com/dialtone_" target="_blank">@dialtone_</a>.</li><li> Repository: <a href="http://bitbucket.org/adroll/erldis/" target="_blank">http://bitbucket.org/adroll/erldis/</a></li></ul>
36<h3><a name="Go-Redis (Go)">Go-Redis (Go)</a></h3><ul><li> Client protocol for redis key-value store.</li><li> Author: Joubin Houshyar, <a href="http://twitter.com/SunOf27" target="_blank">@SunOf27</a>.</li><li> Repository: <a href="http://github.com/alphazero/Go-Redis" target="_blank">http://github.com/alphazero/Go-Redis</a></li></ul>
37<h3><a name="haskell-redis (Haskell)">haskell-redis (Haskell)</a></h3><ul><li> A Haskell binding for the Redis database.</li><li> Author: <a href="http://obvioushints.blogspot.com/" target="_blank">Alvaro Videla</a>, <a href="http://twitter.com/old_sound" target="_blank">@old_sound</a>.</li><li> Repository: <a href="http://bitbucket.org/videlalvaro/redis-haskell/wiki/Home" target="_blank"> </a></li></ul>
38<h3><a name="Java">Java</a></h3><h4><a name="JDBC-Redis">JDBC-Redis</a></h4><ul><li> JDBC-Redis is Java driver using the JDBC interface for Redis Database. This project doesn't aim for a complete implementation of the JDBC specification since Redis isn't a relational database, but should provide a familiar interface to Java developers interact with Redis.</li><li> Repository: <a href="http://code.google.com/p/jdbc-redis/" target="_blank">http://code.google.com/p/jdbc-redis/</a></li></ul>
abe18d0e 39<h4><a name="JRedis">JRedis</a></h4><ul><li> Java Client and Connectors for Redis JCA compliant. Currently offers a complete functioning Synchronous connector, Asynchronous connection and pipelining support under heavy development.</li><li> Author: Joubin Houshyar, <a href="http://twitter.com/SunOf27" target="_blank">@SunOf27</a>.</li><li> Home: <a href="http://code.google.com/p/jredis/" target="_blank">http://code.google.com/p/jredis/</a></li><li> Repository: <a href="http://github.com/alphazero/jredis" target="_blank">http://github.com/alphazero/jredis</a></li></ul>
40<h4><a name="Jedis">Jedis</a></h4><ul><li> Jedis is a small and sane Redis client for Java. It aims to be easier to use by providing a more natural API. It currently supports the binary-safe protocol and pipelining. Sharding and connection pooling is on the way.</li><li> Author: Jonathan Leibiusky, <a href="http://twitter.com/xetorthio" target="_blank">@xetorthio</a>.</li><li> Repository: <a href="http://github.com/xetorthio/jedis" target="_blank">http://github.com/xetorthio/jedis</a></li></ul>
8fb13ce8 41<h3><a name="redis-lua (Lua)">redis-lua (Lua)</a></h3><ul><li> A Lua client library for the redis key value storage system.</li><li> Author: <a href="http://www.clorophilla.net/blog/" target="_blank">Daniele Alessandri</a>, <a href="http://twitter.com/jol1hahn" target="_blank">@jol1hahn</a>.</li><li> Repository: <a href="http://github.com/nrk/redis-lua" target="_blank">http://github.com/nrk/redis-lua</a></li></ul>
42<h3><a name="Perl">Perl</a></h3><h4><a name="Perl Client">Perl Client</a></h4><ul><li> Perl binding for Redis database.</li><li> Author: <a href="http://blog.rot13.org/" target="_blank">Dobrica Pavlinusic</a>, <a href="http://twitter.com/dpavlin" target="_blank">@dpavlin</a>.</li><li> Repository: <a href="http://svn.rot13.org/index.cgi/Redis" target="_blank">http://svn.rot13.org/index.cgi/Redis</a></li></ul>
43<h4><a name="AnyEvent::Redis">AnyEvent::Redis</a></h4><ul><li> Non-blocking Redis client.</li><li> Author: <a href="http://bulknews.typepad.com/" target="_blank">Tatsuhiko Miyagawa</a>, <a href="http://twitter.com/miyagawa" target="_blank">@miyagawa</a>.</li><li> Repository: <a href="http://github.com/miyagawa/AnyEvent-Redis/" target="_blank">http://github.com/miyagawa/AnyEvent-Redis/</a></li></ul>
44<h3><a name="PHP">PHP</a></h3><h4><a name="Redis PHP Bindings">Redis PHP Bindings</a></h4><ul><li> Simple default binding in Redis main repository. No longer under active development.</li><li> Author: <a href="http://qix.it/" target="_blank">Ludovico Magnocavallo</a>, <a href="http://twitter.com/ludo" target="_blank">@ludo</a>.</li><li> Repository: <a href="http://code.google.com/p/redis/source/browse/#svn/trunk/client-libraries/php" target="_blank">http://code.google.com/p/redis/source/browse/#svn/trunk/client-libraries/php</a></li></ul>
45<h4><a name="phpredis">phpredis</a></h4><ul><li> This extension provides an API for communicating with Redis database, a persistent key-value database with built-in net interface written in ANSI-C for Posix systems.</li><li> Author: <a href="http://www.alfonsojimenez.com/" target="_blank">Alfonso Jimenez</a> , (<a href="http://twitter.com/alfonsojimenez" target="_blank">@alfonsojimenez</a>), Nicolas Favre-F&Atilde;&copy;lix and Nasreddine Bouafif.</li><li> Repository: <a href="http://github.com/owlient/phpredis" target="_blank">http://github.com/owlient/phpredis</a></li></ul>
46<h4><a name="Predis">Predis</a></h4><ul><li> A flexible and feature-complete PHP client library for the Redis key-value database. Predis is currently a work-in-progress and it targets PHP &gt;= 5.3, though it is highly due to be backported to PHP &gt;= 5.2.6 as soon as the public API and the internal design on the main branch will be considered stable enough.</li><li> Author: <a href="http://www.clorophilla.net/blog/" target="_blank">Daniele Alessandri</a>, <a href="http://twitter.com/jol1hahn" target="_blank">@jol1hahn</a></li><li> Repository: <a href="http://github.com/nrk/predis/" target="_blank">http://github.com/nrk/predis/</a></li></ul>
47<h4><a name="Redisent">Redisent</a></h4><ul><li> Redisent is a simple, no-nonsense interface to the Redis key-value store for modest developers. Due to the way it is implemented, it is flexible and tolerant of changes to the Redis protocol.</li><li> Author: <a href="http://blog.justinpoliey.com/" target="_blank">Justin Poliey</a>, <a href="http://twitter.com/justinpoliey" target="_blank">@justinpoliey</a></li><li> Repository: <a href="http://github.com/jdp/redisent" target="_blank">http://github.com/jdp/redisent</a></li></ul>
48<h3><a name="Python">Python</a></h3><h4><a name="Python Client">Python Client</a></h4><ul><li> Simple Python client in Redis main repository. No longer under active development.</li><li> Author: <a href="http://qix.it/" target="_blank">Ludovico Magnocavallo</a>, <a href="http://twitter.com/ludo" target="_blank">@ludo</a>.</li><li> Repository: <a href="http://code.google.com/p/redis/source/browse/#svn/trunk/client-libraries/python" target="_blank">http://code.google.com/p/redis/source/browse/#svn/trunk/client-libraries/python</a></li></ul>
49<h4><a name="py-redis">py-redis</a></h4><ul><li> Redis Python Client.</li><li> Author: <a href="Andy.html">McCurdy</a>, <a href="http://twitter.com/andymccurdy" target="_blank">@andymccurdy</a>.</li><li> Repository: <a href="http://github.com/andymccurdy/redis-py" target="_blank">http://github.com/andymccurdy/redis-py</a></li></ul>
50<h3><a name="txredis">txredis</a></h3><ul><li> Python/Twisted client for Redis key-value store</li><li> Author: Dorian Raymer, <a href="http://twitter.com/dio_rian" target="_blank">@dio_rian</a>.</li><li> PyPI: <a href="http://pypi.python.org/pypi/txredis/0.1.1" target="_blank">http://pypi.python.org/pypi/txredis/0.1.1</a></li></ul>
51<h3><a name="redis-rb (Ruby)">redis-rb (Ruby)</a></h3><ul><li> A Ruby client library for the redis key value storage engine.</li><li> Author: <a href="http://brainspl.at/" target="_blank">Ezra Zygmuntowicz</a>, <a href="http://twitter.com/ezmobius" target="_blank">@ezmobius</a>.</li><li> Repository: <a href="http://github.com/ezmobius/redis-rb" target="_blank">http://github.com/ezmobius/redis-rb</a></li></ul>
52<h3><a name="scala-redis (Scala)">scala-redis (Scala)</a></h3><ul><li> A scala library for connecting to a redis server, or a cluster of redis nodes using consistent hashing on the client side.</li><li> Author: <a href="http://www.linkedin.com/in/alejandrocrosa" target="_blank">Alejandro Crosa</a>, <a href="http://twitter.com/alejandrocrosa" target="_blank">@alejandrocrosa</a>.</li><li> Repository: <a href="http://github.com/acrosa/scala-redis" target="_blank">http://github.com/acrosa/scala-redis</a></li></ul>
53<h3><a name="Tcl">Tcl</a></h3><ul><li> The official version is included in the Redis tarball since it's maintained by Salvatore. </li><li> Author: <a href="http://invece.org/" target="_blank">Salvatore Sanfilippo</a>, <a href="http://twitter.com/antirez" target="_blank">@antirez</a></li><li> Repository: <a href="http://github.com/antirez/redis/blob/master/redis.tcl" target="_blank">http://github.com/antirez/redis/blob/master/redis.tcl</a></li></ul>
54 </div>
55
56 </div>
57 </div>
58 </body>
59</html>
60