Middleware and Utilities

This is an alphabetic list of libraries that provide WSGI middleware or WSGI tools. These can generally be used to augment WSGI applications, or create web frameworks.

AuthKit:

AuthKit is an authentication and authorization toolkit for WSGI applications and frameworks.

The authentication middleware part is essentially an extension of paste.auth and there is an adaptor module to provide good support for Pylons although it works with all WSGI apps.

Barrel:
Flexible WSGI authentication and authorization tools.
Beaker:
Beaker is light WSGI middleware layer that provides session's using Myghty's Container API.
dbstore
This distribution provides database backed storage using any PEP 249 compliant database package in conjunction with flup flup.middleware.session. A decorator for supplying WSGI apps with MySQLdb backed sessions is provided.
Deliverance
Deliverance is a tool to theme HTML, applying a consistent style to applications and static files regardless of how they are implemented, and separating site-wide styling from application-level templating.
flup
Includes a session middleware, an error-catching/emailing middleware, and a gzipping middleware. Also includes a publisher inspired by mod_python's publisher module.
hatom2atom
hatom2atom provides Python tools for use with hAtom2Atom.xsl. Includes a test runner that uses html/atom file pairs to test for expected output and a WSGI app that acts as a proxy to transform hAtom documents into Atom (that you are looking at now).
httpy
httpy smooths over WSGI's worst warts. In addition to calling start_response and returning an iterable, httpy lets you return a string, or return or raise a Response object.
lwebstring
An lxml-based implementation of webstring, an XML template engine that includes WSGI middleware and function decorators for outputting HTML or other XML formats from a WSGI application. lxml is a binding for the libxml2 and libxslt libraries with support for many advanced XML features.
selector
This distribution provides WSGI middleware for "RESTful" mapping of URL paths to WSGI applications. Selector now also comes with components for environ based dispatch and on-the-fly middleware composition.
static
This distribution provides an easy way to include static content in your WSGI applications. There is a convenience method for serving files located via pkg_resources. There are also facilities for serving mixed (static and dynamic) content using "magic" file handlers. Python 2.4 string substitution and Kid template support are provided and it is easy to roll your own handlers. Note that this distribution does not require Python 2.4 or Kid unless you want to use those types of templates.
Oort
A WSGI-enabled toolkit for creating RDF-driven web apps.
Paste
Roughly a framework, though more of a set of tools for frameworks. Used natively in some frameworks, like Pylons, Paste WebKit, and RhubarbTart. Integration layers with projects like CherryPaste, DjangoPaste and zope.paste.
Paste Deploy
Configuration system for WSGI applications, servers, and middleware; both to configure individual components and to compose those components into a single running system.
memento
This distribution provides code reloading middleware for use with your WSGI applications. Upon recieving each request, it forgets everything that it has imported since the last request so that it is imported all over again. The concept was inspired by the RollBackImporter used by Steve Purcell in PyUnit. (http://pyunit.sourceforge.net/notes/reloading.html)
Repoze
Repoze is an effort to bring Zope technologies to the larger Python web development community by breaking Zope up into pieces that fit into a WSGI deployment model. This effort also allows existing Zope users to make use of WSGI technologies for development and deployment purposes, notably including the ability to run Zope 2 and Plone applications under WSGI servers.
SchevoWsgi
Provides integration between Schevo and WSGI apps.
ToscaWidgets
A web widget toolkit for Python to aid in the creation, packaging, and distribution of common view elements normally used in the Web. ToscaWidgets is an almost complete rewrite of TurboGears 1.0's widgets in the spirit of TurboGears 2.0 philosophy of repackaging it's services as independent WSGI components for easier maintenance and reuse in other Python web applications or frameworks.
yaro
This distribution provides Yet Another Request Object (for WSGI) in a way that is intended to be simple and useful for web developers who don't want to have to know a lot about WSGI to get the job done. It's also a handy convenience for those who do like to get under the hood but would be happy to eliminate some boilerplate without the encumbrance of some all-singing-all-dancing framework.
urlrelay
Simple RESTful URL dispatcher that passes HTTP requests to an WSGI application based on a matching a URL path regex pattern and, optionally, the HTTP request method.
web
Auth, session, mail, form and templating tools for writing CGI scripts or WSGI web applications.
Web Modules
The Python Web Modules are a suite of simple and easy to use Python components designed to allow developers to write Python CGI scripts or web applications with SQL databases, sessions, templates, email and authorisation functionality.
webstring
Template engine that includes WSGI middleware for producing any text format from a template. Includes special support for XML and HTML.
WFront
Front-door dispatcher that directs HTTP requests based on "virtual host". Includes tools to isolate WSGI apps from server deployment details.
WHIFF WSGI HTTP Integrated File System Frames
WHIFF reduces application complexity by providing an infrastructure for managing web application name spaces, a configuration template language for wiring named components into an application, and an applications programmer interface for accessing named components from Python and javascript modules.
wsgiakismet
Validates form submissions against the Akismet service to verify that they are not comment spam.
wsgiauth
WSGI authentication middleware. Supports HTTP basic, digest, IP, HTML form, and OpenID-based authentication.
WSGIFilter
A simple framework for doing output-filtering of WSGI content. Works well with WSGIRemote.
wsgiform
WSGI middleware for validating and parsing HTML form submissions. Supports automatic escaping of HTML and data sterilization.
WSGI Intercept
Redirects Python HTTP calls to an in-process WSGI application. This can allow HTTP API calls (e.g., REST, XML-RPC, etc) without actually touching the network.
wsgilog
WSGI logging and event reporting middleware. Supports logging events in WSGI applications to STDOUT, time rotated log files, email, syslog, and web servers. Also supports catching and sending HTML-formatted exception tracebacks to a web browser for debugging.
WSGIOverlay
Application-neutral macro templating language. Seems to be superseded by Deliverance.
WSGIRemote
Client library for doing RPC-style internal subrequests in a WSGI stack. Also works for doing HTTP RPC requests.
WSGIRewrite
Middleware for URL rewriting, uses the same syntax as Apache's mod_rewrite.
wsgiserialize
Object serialization middleware for WSGI. Supported object serialization formats include: XML-RPC, JSON, YaML, marshal, and pickle.
wsgistate
Session, HTTP cache control, and caching middleware for WSGI. Sessions are flup-compatible. Supports memory, filesystem, database, and memcached based backends.
WSGIUtils
Includes a simple WSGI application (wsgiAdaptor) that provides basic authentication, signed cookies and persistent sessions.
wsgiview
Turns any TurboGears/Buffet template plug-ins into WSGI middleware.
wsgiwurfl
A WSGI middleware interface to the pywurfl package. The WURFL (Wireless Universal Resource File) is an XML configuration file which contains information about capabilities and features of several wireless devices.
wsgixml
WSGI middleware modules for XML processing
wsgize

WSGI without the WSGI. Provides middleware for WSGI-enabling Python callables including:

  • Middleware that makes non-WSGI Python functions, callable classes, or methods into WSGI applications
  • Middleware that automatically handles generating WSGI-compliant HTTP response codes, headers, and compliant iterators
  • An HTTP response generator
  • A secondary WSGI dispatcher
Werkzeug
Werkzeug started as a simple collection of various utilities for WSGI applications and has become one of the most advanced WSGI utility modules. It includes a powerful debugger, full featured request and response objects, HTTP utilities to handle entity tags, cache control headers, HTTP dates, cookie handling, file uploads, a powerful URL routing system and a bunch of community contributed addon modules.

Middleware_and_Utilities (last edited 2009-05-04 13:34:30 by DiezRoggisch)