[Web-SIG] Preferred set of WSGI servers

James Y Knight foom at fuhm.net
Fri Apr 29 20:18:28 CEST 2005


On Apr 28, 2005, at 2:02 PM, Ian Bicking wrote:
<What I want in a WSGI server>

twisted.web2 supports: HTTP, HTTPS, CGI, and I wrote SCGI yesterday and 
will commit it this weekend. FastCGI looks like a complicated protocol, 
so it'll probably be a bit harder than SCGI to implement. Is there 
actually a reason to support it as well as SCGI?

Right now, web2 runs WSGI apps in threads. It'd be possible to write a 
wrapper that runs them in their own processes, too, but would that give 
any advantage vs the simple CGI->WSGI wrapper that already exists? You 
can just use web2's ability to run CGIs to run 
WSGI-in-separate-processes also.

It is my desire to enable twisted.web2 to be used to host any 
application in any environment, by providing a number of different 
deployment options and app running options.

I've been developing it somewhat under the radar, but It's getting to 
the point where it's fairly stable. At this point the major TODO is 
sitting down and writing some documentation, so I'll try to get an 
alpha release out soon.

Here's the high-level description from the (work-in-progress) docs:
> Twisted.web2 is an asynchronous HTTP 1.1 server written for the 
> Twisted internet framework. It provides a RFC 2616 compliant HTTP 1.1 
> protocol implementation, with pipelined and persistent request 
> support, in a non-blocking threadless manner.
>
> It also includes a simple web framework with request and response 
> objects, static file support, error handling, form upload support, 
> HTTP range support, pre-built parsers for all standard headers, and a 
> bunch of other goodies.
>
> It is deployable as a standard TCP or SSL web server, or as a CGI 
> script invoked by another server. Other deployment mechanisms (such as 
> SCGI) are planned.
>
> In addition to running native twisted.web2 applications, it can also 
> run any WSGI or CGI application, or, via compatibility wrappers, most 
> applications written for the older twisted.web and nevow APIs.
>
> Currently, twisted.web2 does not include a HTTP client or proxy, but 
> will at a future date.

Also includes extra goodies such as automatic range support for all 
resources, automatic if-[un]modified-since/if-[none-]match support if 
you provide the proper headers, and optional automatic gzipping.

James



More information about the Web-SIG mailing list