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.
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.