summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
authorJohn Anderson <sontek@gmail.com>2015-07-16 14:03:56 -0700
committerJohn Anderson <sontek@gmail.com>2015-07-16 14:03:56 -0700
commited85bcfa1b8b16768c42463926586d61a47885d9 (patch)
tree5b5e0ee9d828ff1488387cc1cdd77ac0ce424f99 /README.rst
parenta844d20ae52ae074e72057638478afc0b5fa7b30 (diff)
downloadpymemcache-ed85bcfa1b8b16768c42463926586d61a47885d9.tar.gz
Use restructured text instead of markdown for README
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst103
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>`_