Servers which support WSGI

This is an alphabetic list of WSGI servers. In some cases these are WSGI-only systems, in other cases a package includes a server.

Please feel free to expand the list or descriptions. Direct links to documentation on how to use the server is especially appreciated.

ajp-wsgi

A threaded/forking WSGI server implemented in C (it embeds a Python interpreter to run the actual application). It communicates with the web server via AJP, and is known to work with mod_jk and mod_proxy_ajp. Also available in an SCGI flavor.

Aspen

A pure-Python web server (using the CherryPy module mentioned next) with three hooks to hang your WSGI on.

Bjoern

A “screamingly fast Python WSGI server” and boasts that it is “the fastest, smallest and most lightweight WSGI server.” See performance testing testing WSGI servers with wrk See the install instructions

cherrypy.wsgiserver

CherryPy’s “high-speed, production ready, thread pooled, generic WSGI server.” Includes SSL support. Supports Transfer-Encoding: chunked. For details on running foreign (non-CherryPy) applications under the CherryPy WSGI server, see WSGI Support. See also the CherryPy wiki ModWSGI page.

chiral.web.httpd

A fast HTTP server supporting WSGI, with extensions for Coroutine-based pages with deeply-integrated COMET support.

cogen.web.wsgi

WSGI server with extensions for coroutine oriented programming.

FAPWS

Fapws is a WSGI binding between Python and libev.

See also: author’s block, GoogleGroup.

fcgiapp

fcgiapp is a Python wrapper for the C FastCGI SDK. It’s used by PEAK’s FastCGI servers to provide WSGI-over-FastCGI.

flup

Includes threaded and forking versions of servers that support FastCGI, SCGI, and AJP protocols.

gevent-fastcgi

WSGI-over-FastCGI server implemented using gevent coroutine-based networking library. Supports FastCGI connection multiplexing. Includes adapters for Django and other frameworks that use PasteDeploy.

Gunicorn

WSGI HTTP Server for UNIX, fast clients and nothing else. This is a port of Unicorn to Python and WSGI.

ISAPI-WSGI

An implementation of WSGI for running as a ISAPI extension under IIS.

James

James provides a very simple multi-threaded WSGI server implementation based on the HTTPServer from Python’s standard library. (unmaintained)

Julep

A WSGI Server inspired by Unicorn, written in pure Python.

m2twisted

WSGI server built with M2Crypto and twisted.web2 with some SSL related tricks. Used with client side smart cards and it is also possible to run the HTTPS server with a key in a HSM (like a crypto token)

modjy

Modjy is a java servlets to WSGI gateway that enables the running of jython WSGI applications inside java servlet containers.

mod_wsgi

Python WSGI adapter module for Apache

NWSGI

NWSGI is a .NET implementation of the Python WSGI specification for IronPython and IIS. This makes it easy to run Python web applications on Windows Server. This is a potential alternative to ISAPI + ISAPI_WSGI modules.

netius

Netius is a Python network library that can be used for the rapid creation of asynchronous non-blocking servers and clients. It has no dependencies, it’s cross-platform, and brings some sample netius-powered servers out of the box, namely a production-ready WSGI server.

paste.httpserver

Minimalistic threaded WSGI server built on BaseHTTPServer. Doesn’t support Transfer-Encoding: chunked.

phusion passenger

“proof of concept” WSGI since 2008 (1.x), support upgraded to “beta” in version 3 (with limitations e.g. requires Ruby even when unused) and first-class in Passenger 4.

python-fastcgi

python-fastcgi is a lightweight wrapper around the Open Market FastCGI C Library/SDK. It includes threaded and forking WSGI server implementations.

Spawning
twisted.web

A WSGI server based on Twisted Web’s HTTP server (requires Twisted 8.2 or later).

unit

A new lightweight declarative-configuration application server by NGINX, Inc, with built-in first-class support for WSGI (and ASGI), including websocket support.

uWSGI

Fast, self-healing, developer-friendly WSGI server, meant for professional deployment and development of Python Web applications.

werkzeug.serving

Werkzeug’s multithreaded and multiprocessed development server. Wraps wsgiref to add a reloader, multiprocessing, static files handling and SSL.

wsgid

Wsgid is a generic WSGI handler for mongrel2 webserver. Wsgid offers a complete daemon environment (start/stop/restart) to your app workers, including automatically re-spawning of processes.

WSGIserver

WSGIserver is a high-speed, production ready, thread pooled, generic WSGI server with SSL support for both Python 2 (2.6 and above) and Python 3 (3.1 and above). WSGIserver is a one file project with no dependency.

WSGIUtils

Includes a threaded HTTP server.

wsgiref (Python 3)

Included as part of thef standard library since Python 2.5; it includes a threaded HTTP server, a CGI server (for running any WSGI application as a CGI script), and a framework for building other servers.

For versions prior to Python 2.5, see wsgiref’s original home.