]> git.saurik.com Git - redis.git/blobdiff - doc/SupportedLanguages.html
Merge remote branch 'pietern/cli-monitor'
[redis.git] / doc / SupportedLanguages.html
index 3b8156a2d2885ed606bb62bdd9790a1d17f1934e..d0d06aa2ba8d506ed4d2cc86719fb7564fdcd9a9 100644 (file)
@@ -28,7 +28,7 @@
                 <div class="narrow">
                     <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>
 <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>
                 <div class="narrow">
                     <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>
 <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>
-<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;"> 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>
+<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>
 <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>
 <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>
 <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>
 <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>
 <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>
 <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>
@@ -36,7 +36,8 @@
 <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>
 <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>
 <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>
 <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>
 <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>
 <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>
-<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 develpment.</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>
+<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>
+<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>
 <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>
 <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>
 <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>
 <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>
 <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>
 <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>