[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