diff options
author | John Anderson <sontek@gmail.com> | 2015-07-16 14:03:56 -0700 |
---|---|---|
committer | John Anderson <sontek@gmail.com> | 2015-07-16 14:03:56 -0700 |
commit | ed85bcfa1b8b16768c42463926586d61a47885d9 (patch) | |
tree | 5b5e0ee9d828ff1488387cc1cdd77ac0ce424f99 /README.rst | |
parent | a844d20ae52ae074e72057638478afc0b5fa7b30 (diff) | |
download | pymemcache-ed85bcfa1b8b16768c42463926586d61a47885d9.tar.gz |
Use restructured text instead of markdown for README
Diffstat (limited to 'README.rst')
-rw-r--r-- | README.rst | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..be6b4e8 --- /dev/null +++ b/README.rst @@ -0,0 +1,103 @@ +pymemcache +========== + +.. image:: https://travis-ci.org/pinterest/pymemcache.png + :target: https://travis-ci.org/pinterest/pymemcache + +A comprehensive, fast, pure-Python memcached client. + +pymemcache supports the following features: + +* Complete implementation of the memcached text protocol. +* Configurable timeouts for socket connect and send/recv calls. +* Access to the "noreply" flag, which can significantly increase the speed of writes. +* Flexible, simple approach to serialization and deserialization. +* The (optional) ability to treat network and memcached errors as cache misses. + +Installing pymemcache +===================== + +You can install pymemcache manually, with Nose tests, by doing the following: + +.. code-block:: bash + + git clone https://github.com/pinterest/pymemcache.git + cd pymemcache + python setup.py nosetests + sudo python setup.py install + +You can also use pip: + +.. code-block:: bash + + sudo pip install https://github.com/pinterest/pymemcache.git + +Usage +===== + +See the documentation here: http://pymemcache.readthedocs.org/en/latest/ + +Comparison with Other Libraries +=============================== + +pylibmc +------- + +The pylibmc library is a wrapper around libmemcached, implemented in C. It is +fast, implements consistent hashing, the full memcached protocol and timeouts. +It does not provide access to the "noreply" flag, and it doesn't provide a +built-in API for serialization and deserialization. It also isn't pure Python, +so using it with libraries like gevent is out of the question. + +Python-memcache +--------------- + +The python-memcache library implements the entire memcached text protocol, has +a single timeout for all socket calls and has a flexible approach to +serialization and deserialization. It is also written entirely in Python, so +it works well with libraries like gevent. However, it is tied to using thread +locals, doesn't implement "noreply", can't treat errors as cache misses and is +slower than both pylibmc and pymemcache. It is also tied to a specific method +for handling clusters of memcached servers. + +memcache_client +--------------- + +The team at mixpanel put together a pure Python memcached client as well. It +has more fine grained support for socket timeouts, only connects to a single +host. However, it doesn't support most of the memcached API (just get, set, +delete and stats), doesn't support "noreply", has no serialization or +deserialization support and can't treat errors as cache misses. + +External Links +============== + +The memcached text protocol reference page: + https://github.com/memcached/memcached/blob/master/doc/protocol.txt + +The python-memcached library (another pure-Python library): + https://github.com/linsomniac/python-memcached + +Mixpanel's Blog post about their memcached client for Python: + http://code.mixpanel.com/2012/07/16/we-went-down-so-we-wrote-a-better-pure-python-memcache-client/ + +Mixpanel's pure Python memcached client: + https://github.com/mixpanel/memcache_client + +Credits +======= + +* `Charles Gordon <http://github.com/cgordon>`_ +* `Dave Dash <http://github.com/davedash>`_ +* `Dan Crosta <http://github.com/dcrosta>`_ +* `Julian Berman <http://github.com/Julian>`_ +* `Mark Shirley <http://github.com/maspwr>`_ +* `Tim Bart <http://github.com/pims>`_ +* `Thomas Orozco <http://github.com/krallin>`_ +* `Marc Abramowitz <http://github.com/msabramo>`_ +* `Marc-Andre Courtois <http://github.com/mcourtois>`_ +* `Julien Danjou <http://github.com/jd>`_ +* `INADA Naoki <http://github.com/methane>`_ +* `James Socol <http://github.com/jsocol>`_ +* `Joshua Harlow <http://github.com/harlowja>`_ +* `John Anderson <http://github.com/sontek>`_ |