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.
bjoern is the fastest, smallest and most lightweight WSGI server out there, featuring
- < 1000 lines of code
- Memory footprint ~ 600KB
- Single-threaded and without coroutines or other crap
- 100% WSGI compliance (except for the write callback design mistake)
- Not HTTP/1.1 capable (yet).
- Arch Linux
pacman -S libev
- Ubuntu
apt-get install libev-dev
- Mac OS X (using homebrew)
brew install libev
- Your Contribution Here
- Fork me and send a pull request
Make sure libev is installed and then:
pip install bjoern
bjoern.run(wsgi_application, host, port)
Alternatively, the mainloop can be run separately:
bjoern.listen(wsgi_application, host, port) bjoern.run()
Sucks. Really, the code is an incredible mess. It likes to segfault.
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".
bjoern is about 5 times faster. Plus gunicorn is too much bloated.
Awesome project, but way too much bloat.
Unfortunately now bloated with gunicorn and coroutine/greenlet crap, seemed to be a very nice server at first.
Probably too much bloat, too slow, does not scale, buggy, ...