Skip to main content

A high performance webserver based off tulip (pep-3156)

Project description

Archangel is a webserver designed to be fast and easy to use for personal usage. It was created to replace an internal webserver based off of flup for fcgi and wsgiref for http serving (basically anything would be an improvement) as well as explore the new pep-3156/Tulip based library by Guido van Rossum

Archangel is designed to be ‘fast’. This does not mean however that archangel is fast, Archangel is instead intended to explore how fast a server using an event loop based of tulip can be made to go and what is needed to get it there.

As an additional side effect it should serve as a light house in the fog as to what you should or should not do with Tulip (Of course it is still yet to be determine on which side of the divide Archangel ends up)

Tenets:

Only do things when we need to:

Do things “Just in Time”

Only do things we have to:

Be lazy

Do it quickly:

Go back to sleep as fast as possible

WSGI-STREAM

Archangel also provides a test-bed for developing a new protocol loosely based off of pep-3333 but designed for the needs of streaming and for use with tulip. Due to the use of the yield from construct by tulip compatible event loops, using yield to incrementaly return a body is not possible. As such, an alternate interface is needed to support both writing the body as one whole chunk and iteratively generating the body as well as providing compatibility with the ideas of WSGI for ‘wrapping’ apps in middleware. At this time (version 0.1) file like proxies are being used for both the request and the response that can be ‘corked’ or paused until start_response has been called, preserving a similar interface to WSGI and allowing a WSGI-STREAM middleware to fully emulate a WSGI middleware interface

Requirements

  • Python 3.3 or greater

  • Distutils2 (to replace setup.py, a fallback is provided)

  • A copy of the Tulip library

  • PyYaml for parsing the config files

Getting the Latest version

The latest version of Archangel can be obtained with mercurial/hg using the following command:

hg clone http://code.pocketnix.org/archangel

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

archangel-0.1.1.zip (10.2 kB view hashes)

Uploaded Source

archangel-0.1.1.tar.gz (5.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page