root/asynwsgi/trunk/pkg-info.rst

Revision 467, 4.1 kB (checked in by robin, 2 years ago)

* merged the serviceapi branch

These changes firm up the dispatcher api, the service model api and the service request api

* huge set of name changes
* lots of documentation
* a number of micelaneous bug fixes and api enhancements.


License:MIT
Project-Label:asynwsgi
Version: 0.4dev5
Author: Robin Bryce
Author-email:robinbryce@gmail.com
Description:A suspiciously quick, pure python (2.5 only), asynchronous WSGI server, implemented using asynchronous I/O and non blocking sockets.
Copyright: Copyright (c) 2007 Robin Bryce
Classifiers:Development Status :: 2 - Pre-Alpha
Classifiers:Programming Language :: Python

Abstract

This work was started as an effort to better understand the impact of different Python pep-333 WSGI application profiles on server performance. This is still the focus of development. This server is NOT FOR PRODUCTION USE. This server implementation owes a lot to several prior works:

Keep-Alive works for both HTTP/1.0 and HTTP/1.1 clients and is essential for best performance.

The implementation requires Python 2.5, and (currently) linux and the poll system call.

For documentation on using the dispatch mainloop and implementing compatible dispatch targets see asynwsgi.dispatcher and asynwsgi.tcpsocket

For the current server implementation see:

python -m asynwsgi.wsgiservice.server --help

For a minimal async http clients see:

python -m asynwsgi.httpclient oneraw --help
python -m asynwsgi.httpclient bulkfetch --help

For profiling, use the --profile option of the server above in conjunction with:

python -m asynwsgi.bench.http_processing --help

For a means to stress test the server on a single host see:

python -m asynwsgi.bench.tool saturate --help
python -m asynwsgi.bench.tool bench --help

Both saturate and bench start a single server instance. saturate runs one instance of a http_processing client while bench runs mutliple GET and POST async client processes (http_processing instances with appropriate options) against the same server instance.

For a means to generate and sustain a large number of pending connection attempts with the server - Ie, MORE than the rate at wich the server can accept those connections - see:

python -m asynwsgi.sclients.main --help

And take a look at the C10k site for a detailed explanation of what an sclient is and what you can do with one.

Note: See TracBrowser for help on using the browser.