#pragma section-numbers off = Implementations of the Web Server Gateway Interface = Note: many of these implementations may be partial/incomplete or noncompliant as of the current draft spec. If you can't get the code samples in the spec to work with one of these implementations, there's a good chance that the implementation is broken: contact the implementation's author. See [[http://www.python.org/peps/pep-0333.html|PEP 333]] for more information on WSGI. == Web Server implementations == * [[http://divmod.org/trac/wiki/DivmodNevow|Divmod Nevow]] Twisted Web-based templating framework with a WSGI implementation * [[http://wiki.secondlife.com/wiki/Eventlet/Documentation#Using_eventlet.wsgi|Eventlet]] - allows for the implementation of massively concurrent servers which would require prohibitive amounts of memory under a traditional preemptive multi-threading or multi-process model ... can also run inside of the nginx Web server using the mod_wsgi package for nginx * [[http://www.saddi.com/software/flup/|flup]] has AJP, SCGI and FastCGI servers * see Jonpy below
* [[http://isapi-wsgi.python-hosting.com|isapi_wsgi]] - a WSGI implementation for IIS ISAPI * [[http://modjy.xhaus.com/|modjy]] - a WSGI implementation for Jython * [[http://code.google.com/p/modwsgi/|mod_wsgi]] module for Apache * [[http://wiki.codemongers.com/NginxNgxWSGIModule?highlight=%28wsgi%29|nginx mod_wsgi]] module for Nginx * [[http://peak.telecommunity.com/|Peak]] has CGI and FastCGI gateway and server options [[http://mail.python.org/pipermail/web-sig/2004-October/000966.html|more info]] * [[http://pythonpaste.org/module-paste.httpserver.html|Paste#http]] a SimpleHTTPServer-based server * see [[http://mail.python.org/pipermail/web-sig/2006-January/001859.html|Python Paste]] below * [[http://www.idyll.org/~t/www-tools/wsgi/|SWAP]] - a WSGI adapter for [[http://www.mems-exchange.org/software/scgi/|SCGI]]. * [[http://twistedmatrix.com/projects/web2|Twisted Web2]] Experimental HTTP server with a WSGI implementation * [[http://pyds.muensterland.org/wiki/toolserver.html|Toolserver Framework for Python]] - a WSGI implementation in a Medusa-based webservice framework * [[http://mail.python.org/pipermail/web-sig/2004-October/000956.html|wsgiref]] - a library of base classes covering most of the "hard parts" of a WSGI server implementation, written by the PEP author. It also includes utility functions and classes that may be useful for application/framework implementors, and should be considered a "must read" for server implementors. (Update: most of the limitations mentioned in the linked post have now been resolved; wsgiref now includes sensible default error handling and logging, automatic calculation of Content-Length when possible, and greater test coverage. See [[http://svn.eby-sarna.com/wsgiref|wsgiref]] for source code.) * see WSGIUtils below == Web Framework implementations == * CherryPy 2.1 beta includes a mutli-threaded WSGI server * [[http://wsgiarea.pocoo.org/colubrid/|Colubrid]] - simple to use WSGI implementation compatible with python2.2 or higher. It parses formdata, url parameters, cookies and implements some simple to use URL dispatchers. * [[http://www.djangoproject.com/|Django]] - An emerging framework generating a lot of buzz that has [[http://code.djangoproject.com/changeset/169|recently added support]] for WSGI * [[http://st0rm.hopto.org/wsgi/|Jonpy]] - this also includes a HTTP server with a WSGI backend * [[http://divmod.org/trac/wiki/DivmodNevow|Nevow]] - the reimplementation of Twisted's woven, doesn't require Twisted. * [[http://pythonpaste.org/webkit/|Paste WebKit]] - a [[http://w4py.org|Webware]] reimplementation, implemented with a degree of framework-neutrality in mind. * [[http://www.pythonweb.org|Python Web Modules]] - New version contains a WSGI server and middleware. * [[http://pythonpaste.org/|Python Paste]] - a collection of low-level WSGI tools including a multi-threaded SSL-enabled WSGI [[http://svn.w4py.org/Paste/trunk/paste/httpserver.py|server]], and an [[http://svn.w4py.org/Paste/trunk/paste/auth/|auth]] package with signed cookies, sessions, form and digest authentication. * [[http://pylonshq.com/|Pylons]] - a WSGI-based framework using Mako and Paste * [[http://www.idyll.org/~t/www-tools/wsgi/|QWIP]] - a WSGI adapter for [[http://quixote.ca/|Quixote]] applications. * [[http://www.turbogears.org|TurboGears]] also provides a WSGI front-end. * [[http://pythonpaste.org/wareweb/|Wareweb]] - a rethinking of Webware/WebKit * [[http://packages.python.org/weblayer/|weblayer]] - weblayer is a lightweight, componentised Python package for writing WSGI applications * [[http://www.owlfish.com/software/wsgiutils/|WSGIUtils]] - A multi-threaded WSGI server implementation and a simple framework providing basic user authentication, signed cookies, and persistent sessions. * [[http://www.zope.org|Zope]] Zope 3 is now a WSGI application. It ships with the Twisted WSGI server implementation and also includes an asyncore-based server implemenatation.