{"name":"dogpile.cache: Cache Python Data Across Backends","description":"dogpile.cache is a Python caching API built on dogpile's locking mechanism. It gives applications a common interface to cache backends such as Redis, Memcached, databases, and in-memory dictionaries.","github":"https://github.com/sqlalchemy/dogpile.cache","url":"https://osrepos.com/repo/sqlalchemy-dogpile.cache","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/sqlalchemy-dogpile.cache","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/sqlalchemy-dogpile.cache.md","json":"https://osrepos.com/repo/sqlalchemy-dogpile.cache.json","topics":["python","library","database","caching","memcached","redis"],"keywords":["python","library","database","caching","memcached","redis"],"stars":null,"summary":"dogpile.cache is a Python caching API built on dogpile's locking mechanism. It gives applications a common interface to cache backends such as Redis, Memcached, databases, and in-memory dictionaries.","content":"## Overview\n\n`dogpile.cache` is a Python caching API built on `dogpile`, the locking subsystem that coordinates creation of cached values. It gives applications a consistent way to use different storage backends and helps prevent multiple workers from recreating the same expired value at once.\n\nThe project is intended for Python applications that want configurable cache regions, standard cache operations, or function-level caching without binding application code to one storage system. Included backends cover Redis, several Memcached clients, a DBM file, and a plain dictionary; the project also allows third-party backends.\n\n## Key Features\n\n- Define cache regions with a backend, options, and default expiration.\n- Use get, set, and delete operations or a function decorator.\n- Customize function cache keys and optionally transform keys with a key mangler.\n- Coordinate value creation with dogpile locks, allowing readers to use an older value while a new one is created.\n- Use backend-specific distributed locks where available, or a regular thread mutex.\n- Choose from included Memcached, Redis, DBM, and dictionary backends.\n- Register custom backends directly or through setuptools entry points.\n\n## Use Cases\n\n- Python web applications can cache expensive function results while allowing concurrent requests to reuse an existing value during refresh.\n- Teams using Redis or Memcached can add caching behind a shared API rather than coupling application logic to a specific backend.\n- Applications with modest local caching needs can use the dictionary backend, or DBM when file-based storage is appropriate.\n- Developers can add a backend for a storage system that is not included, using the project's backend interface.\n\n## Our Take\n\n`dogpile.cache` is a focused Python caching library with multiple backend options and a clear concurrency model, though recent development activity is light and concentrated in one contributor.\n\n**Good fit if:**\n- Your application is Python 3.10 or newer and needs a common API across supported cache backends.\n- You need cache refresh coordination, especially the ability to serve an old value while a replacement is created.\n- MIT licensing and a project maintained as part of the SQLAlchemy Project suit your use.\n\n**Look elsewhere if:**\n- You need a project with frequent releases or broader recent issue and pull-request activity. There has been no release in over a year, and recent commits are few.\n- Your team requires development and maintenance to be spread across contributors. Most of the code comes from one person.\n- You need a caching service rather than a Python library, or a backend not available in the project and do not want to implement one.\n\n## Project Health\n\n| Signal | Value |\n|---|---|\n| Status | **Maintained**: a few commits in the last 90 days |\n| Last commit | 2026-08-11 (2 months ago) |\n| Commits, last 90 days | 2 |\n| Releases, last 12 months | 0 (latest rel_1_5_0, 2025-10-11) |\n| Contributors | 50 (top contributor: 77% of commits) |\n| Issues closed, last 90 days | 0 |\n| Pull requests merged, last 90 days | 0 |\n| Project age | 7 years |\n\nChecked on 2026-10-15 with the GitHub API.\n\n## Project Facts\n\n- Language: Python\n- License: MIT\n- Stars: 299\n- Forks: 51\n- Topics: memcached, redis\n- Website: https://dogpilecache.sqlalchemy.org\n- Archived: no\n\n## What You Need\n\nDetected in the repository:\n\n- Python >=3.10 (from pyproject.toml)\n- A test suite\n\n## Getting Started\n\nThe README does not specify an installation command. See the [README](https://github.com/sqlalchemy/dogpile.cache) and [documentation](https://dogpilecache.sqlalchemy.org) for setup and configuration details.\n\n## License in Plain Words\n\n**MIT** (permissive).\n\n- Commercial use: yes\n- Modify and redistribute: yes\n- You must keep: the copyright and license notice\n- Share your changes: no\n\nA summary, not legal advice: the LICENSE file is what applies.\n\n## Considerations\n\nThe project requires Python 3.10 or newer. Its health data indicates a maintained but quiet project: there have been only a few recent commits, no release in over a year, and no recent issue closures or merged pull requests. Although it has many contributors overall, contribution is concentrated, with most code attributed to one person. The project is MIT-licensed. Its README describes several included backends, but teams needing another storage system may need to build and maintain a custom backend.","metrics":{"detailViews":8,"githubClicks":23},"dates":{"published":null,"modified":"2026-10-15T01:40:30.000Z"}}