Skip to main content

High performance asynchronous Python WSGI Web Server

Project description

What’s this

this is a python wsgi web server.

Thus this is yet an another asynchronous web server like fapws3, tornado.

And meinheld is a WSGI compliant web server.

Require

meinheld requires Python 2.x >= 2.5.

sorry meinheld supported linux only.

Installation

Install from pypi:

$ easy_install -ZU meinheld

Install from source:

$ python setup.py install

meinheld support gunicorn .

To install gunicorn:

$ easy_install -ZU gunicorn

Basic Usage

simple wsgi app:

from meinheld import server

def hello_world(environ, start_response):
    status = '200 OK'
    res = "Hello world!"
    response_headers = [('Content-type','text/plain'),('Content-Length',str(len(res)))]
    start_response(status, response_headers)
    return [res]

server.listen(("0.0.0.0", 8000))
server.run(hello_world)

with gunicorn. user worker class “meinheld.gmeinheld.MeinheldWorker”:

$ gunicorn --workers=2 --worker-class="meinheld.gmeinheld.MeinheldWorker" gunicorn_test:app

Performance

meinheld is used high performance http_parser.

(see http://github.com/ry/http-parser)

and useing high performance event library picoev.

(see http://developer.cybozu.co.jp/kazuho/2009/08/picoev-a-tiny-e.html)

simple benchmark

simple hello_world bench:

def hello_world(environ, start_response):
    status = '200 OK'
    res = "Hello world!"
    response_headers = [('Content-type','text/plain'),('Content-Length',str(len(res)))]
    start_response(status, response_headers)
    return [res]

use apach bench:

$ ab -c 100 -n 10000 http://127.0.0.1:8000/

spec

  • CPU : Intel(R) Atom(TM) CPU N270 @ 1.60GHz

  • Memoy : 1G

  • OS: Ubuntu 10.04

server

Requests per second

meinheld 0.1

2927.62 [#/sec]

fapws3 0.6

1293.53 [#/sec]

sendfile

meinheld use sendfile(2), over wgsi.file_wrapper.

Project details


Download files

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

Source Distribution

meinheld-0.1.tar.gz (34.6 kB view details)

Uploaded Source

File details

Details for the file meinheld-0.1.tar.gz.

File metadata

  • Download URL: meinheld-0.1.tar.gz
  • Upload date:
  • Size: 34.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for meinheld-0.1.tar.gz
Algorithm Hash digest
SHA256 5de4f7456afc112497c82387040f27194d0f28d91ff0459dee67335aa8e699ad
MD5 c13a5cdf9bdddf981f284f25e093c91d
BLAKE2b-256 c4d8f3304dd16bdee8169b9a3ae79f90adfd382ee2f8f89c882ca851e80be984

See more details on using hashes here.

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