From 59b38d66b46cb37a450fdf0c443b1cc8a94f21c2 Mon Sep 17 00:00:00 2001 From: Jonas Haag Date: Sat, 25 Dec 2010 14:52:31 +0100 Subject: [PATCH] Some README tweaks as proposed by gorakhargosh --- README.rst | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/README.rst b/README.rst index 45890b91..d7ee9d82 100644 --- a/README.rst +++ b/README.rst @@ -1,25 +1,19 @@ -bjoern: Fast And Ultra Lightweight Asynchronous WSGI Server +bjoern: Fast And Ultra-Lightweight Asynchronous WSGI Server =========================================================== -A screamingly fast, ultra-lightweight asynchronous `WSGI`_ server for CPython, -written in C using Marc Lehmann's high performance `libev`_ event loop and -Ryan Dahl's `http_parser`_. +A screamingly fast, ultra-lightweight asynchronous WSGI_ server for CPython, +written in C using Marc Lehmann's high performance libev_ event loop and +Ryan Dahl's http_parser_. Why It's Cool ~~~~~~~~~~~~~ bjoern is the *fastest*, *smallest* and *most lightweight* WSGI server out there, featuring -* < 1000 Lines of Code +* < 1000 lines of code * Memory footprint ~ 600KB * Single-threaded and without coroutines or other crap -* 100% WSGI compliancy (except for the `write callback design mistake`_) - -.. _WSGI: http://www.python.org/dev/peps/pep-0333/ -.. _libev: http://software.schmorp.de/pkg/libev.html -.. _http_parser: http://github.com/ry/http-parser -.. _write callback design mistake: - http://www.python.org/dev/peps/pep-0333/#the-write-callable +* 100% WSGI compliance (except for the `write callback design mistake`_) What's Not So Cool ------------------ @@ -32,7 +26,9 @@ libev Arch Linux ``pacman -S libev`` Ubuntu - ``apt-get install libev`` + ``apt-get install libev-ev`` +Mac OS X (using homebrew_) + ``brew install libev`` Your Contribution Here Fork me and send a pull request @@ -48,13 +44,14 @@ Usage bjoern.run(wsgi_application, host, port) - # alternatively, the mainloop can be run separately: +Alternatively, the mainloop can be run separately:: + bjoern.listen(wsgi_application, host, port) bjoern.run() But What About... ~~~~~~~~~~~~~~~~~ -Fapws3? +Fapws3_? ------- Sucks. Really, the code is an incredible mess. It likes to segfault. @@ -62,15 +59,15 @@ I tried to patch Fapws so that it would support threading, but after about two hours of brain slime feeling, I decided to write my own WSGI server -- "Fapws done right". -gunicorn? +gunicorn_? --------- bjoern is about 5 times faster. Plus gunicorn is too much bloated. -uWSGI? +uWSGI_? ------ Awesome project, but way too much bloat. -meinheld? +meinheld_? --------- Unfortunately now bloated with gunicorn and coroutine/greenlet crap, seemed to be a very nice server at first. @@ -78,3 +75,15 @@ seemed to be a very nice server at first. $SERVER? -------- Probably too much bloat, too slow, does not scale, buggy, ... + + +.. _WSGI: http://www.python.org/dev/peps/pep-0333/ +.. _libev: http://software.schmorp.de/pkg/libev.html +.. _http_parser: http://github.com/ry/http-parser +.. _write callback design mistake: + http://www.python.org/dev/peps/pep-0333/#the-write-callable +.. _homebrew: https://mxcl.github.com/homebrew/ +.. _meinheld: https://github.com/mopemope/meinheld/ +.. _uWSGI: http://projects.unbit.it/uwsgi/ +.. _gunicorn: http://gunicorn.org +.. _Fapws3: http://fapws.org