Pump

A dead simple Pythonic abstraction of HTTP.

What WSGI should have been.

Pump hides the implementation details of HTTP and gives you a Pythonic API for writing webapps. Your app is just a function that takes a request—a dict with certain keys—and returns a response—a dict with status, headers and body keys. No fancy start_response or environ here.

Comes with useful middlewares.

Pump middlewares are reusable functions that can add functionality to any Pump app. Pump comes with useful middlewares like wrap_params, wrap_nested_params, wrap_static, wrap_cookies, wrap_sessions. Since such functionality is implemented as middleware, frameworks built on Pump don't have to reinvent the wheel.

Take advantage of existing WSGI tools.

Pump comes with adapters for serving Pump apps with WSGI servers and converting WSGI middleware to Pump middleware.

Picasso: a framework built on Pump.

If you’re interested in building a webapp with Pump, check out Picasso. It packages together various Pump middlewares so that you have routing and templating out of the box. It’s also a good place to start if you want to write your own Pump framework.