Beaker

A Session and Caching library with WSGI Middleware
Download

Beaker Ranking & Summary

Advertisement

  • Rating:
  • License:
  • BSD License
  • Price:
  • FREE
  • Publisher Name:
  • Ben Bangart, Mike Bayer, Philip Jenvey
  • Publisher web site:
  • http://beaker.groovie.org

Beaker Tags


Beaker Description

A Session and Caching library with WSGI Middleware 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. It was built largely on the code from MyghtyUtils, then extended and refactored with database support.Beaker includes Cache and Session WSGI middleware to ease integration with WSGI capable frameworks, and is automatically used by Pylons.Examples:CachingBasic Example:from beaker.cache import CacheManagercm = CacheManager(type='dbm', data_dir='./cache')cache = cm.get_cache('mytemplate')def somethingslow(): # slow stuff db_lookups()# Get the value, this will create the cache copy the first time# and any time it expires (in seconds, so 3600 = one hour)result = mycache.get_value(day, createfunc=somethingslow, expiretime=3600)Using WSGI:from beaker.middleware import CacheMiddlewaredef simple_app(environ, start_response): cache = environ.get_cache('testcache') try: value = cache.get_value('value') except KeyError: value = 0 cache.set_value('value', value+1) start_response('200 OK', ) return app = CacheMiddleware(simple_app, type='dbm', data_dir='./cache')SessionsUsing WSGI:from beaker.middleware import SessionMiddlewaredef simple_app(environ, start_response): session = environ if not session.has_key('value'): session = 0 session += 1 session.save() start_response('200 OK', ) return ]wsgi_app = SessionMiddleware(simple_app, type='dbm', data_dir='./cache') Here are some key features of "Beaker": · Fast, robust performance · Multiple reader/single writer lock system to avoid duplicate simultaneous cache creation · Cache back-ends include dbm, file, memory, memcached, and database (Using SQLAlchemy for multiple-db vendor support) · Signed cookie's 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 · Cache's 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 Requirements: · Python


Beaker Related Software