Metadata-Version: 2.0
Name: django-cacheback
Version: 1.3.1
Summary: Caching library for Django that uses Celery or RQ to refresh cache items asynchronously
Home-page: https://github.com/codeinthehole/django-cacheback
Author: David Winterbottom
Author-email: david.winterbottom@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: django (>=1.8,<2.0)
Provides-Extra: celery
Requires-Dist: celery; extra == 'celery'
Provides-Extra: rq
Requires-Dist: django-rq (>=0.9); extra == 'rq'
Provides-Extra: tests
Requires-Dist: tox; extra == 'tests'
Requires-Dist: tox-pyenv; extra == 'tests'
Requires-Dist: mock; extra == 'tests'
Requires-Dist: freezegun (>=0.3.7); extra == 'tests'
Requires-Dist: pytest (>=3.0.3); extra == 'tests'
Requires-Dist: pytest-cov (>=2.4.0); extra == 'tests'
Requires-Dist: pytest-flakes (>=1.0.1); extra == 'tests'
Requires-Dist: pytest-pep8 (>=1.0.6); extra == 'tests'
Requires-Dist: pytest-django (>=3.0.0); extra == 'tests'
Requires-Dist: pytest-isort (>=0.1.0); extra == 'tests'
Requires-Dist: celery; extra == 'tests'
Requires-Dist: django-rq (>=0.9); extra == 'tests'

=========
Cacheback
=========
----------------------------------------
Asynchronous cache refreshing for Django
----------------------------------------

What does this library do?
--------------------------
It's an extensible caching library that refreshes stale cache items
asynchronously using a Celery_ or rq_ task (utilizing django-rq). The key
idea being that it's better to serve a stale item (and populate the cache
asynchronously) than block the response process in order to populate the cache
synchronously.

.. _Celery: http://celeryproject.org/
.. _rq: http://python-rq.org/

Using this library, you can rework your views so that all reads are from
cache - which can be a significant performance boost.

A corollary of this technique is that cache hammering can be handled simply and
elegantly, avoiding sudden surges of expensive reads when a cached item becomes stale.

Do you have good docs?
----------------------
Yup - `over on readthedocs.org`_.

.. _`over on readthedocs.org`: http://django-cacheback.readthedocs.org/en/latest/

Do you support Python 3?
------------------------
Pythons 2.7, 3.3, 3.4, 3.5 and PyPy are supported.

Django versions 1.8 to 1.11 are supported.

Do you have tests?
------------------
You betcha!

.. image:: https://secure.travis-ci.org/codeinthehole/django-cacheback.png
    :target: https://travis-ci.org/#!/codeinthehole/django-cacheback

Can I use this in my project?
-----------------------------
Probably - subject to the `MIT license`_.

.. _`MIT license`: https://github.com/codeinthehole/django-cacheback/blob/master/LICENSE

I want to contribute!
---------------------
Brilliant!  Here are the `contributing guidelines`_.

.. _`contributing guidelines`: http://django-cacheback.readthedocs.org/en/latest/contributing.html


