Cache and Session Library
Beaker is a web session and general caching library that includes WSGI middleware for use in web applications.
As a general caching library, Beaker can handle storing for various times any Python object that can be pickled with optional back-ends on a fine-grained basis.
Beaker was built largely on the code from MyghtyUtils, then refactored and extended with database support.
- Fast, robust performance
- Multiple reader/single writer lock system to avoid duplicate simultaneous cache creation
- Cache back-ends include dbm, file, memory, memcached, Redis, MongoDB, and database (Using SQLAlchemy for multiple-db vendor support)
- Signed cookies to prevent session hijacking/spoofing
- Cookie-only sessions to remove the need for a db or file backend (ideal for clustered systems)
- Extensible Container object to support new back-ends
- Caches can be divided into namespaces (to represent templates, objects, etc.) then keyed for different copies
- Create functions for automatic call-backs to create new cache copies after expiration
- Fine-grained toggling of back-ends, keys, and expiration per Cache object
Documentation can be found on the Official Beaker Docs site.
The latest developer version is available in a GitHub repository.
Bugs can be filed on GitHub, should be accompanied by a test case to retain current code coverage, and should be in a pull request when ready to be accepted into the beaker code-base.