A screamingly fast Python WSGI server written in C.
Project description
A screamingly fast, ultra-lightweight 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 C code
Memory footprint ~ 600KB
Single-threaded and without coroutines or other crap
Can bind to TCP host:port addresses and Unix sockets (thanks @k3d3!)
Full persistent connection (”keep-alive”) support in both HTTP/1.0 and 1.1, including support for HTTP/1.1 chunked responses
Installation
pip install bjoern. See wiki for details.
Usage
# Bind to TCP host/port pair: bjoern.run(wsgi_application, host, port) # TCP host/port pair, enabling SO_REUSEPORT if available. bjoern.run(wsgi_application, host, port, reuse_port=True) # Bind to Unix socket: bjoern.run(wsgi_application, 'unix:/path/to/socket') # Bind to abstract Unix socket: (Linux only) bjoern.run(wsgi_application, 'unix:@socket_name')
Alternatively, the mainloop can be run separately:
bjoern.listen(wsgi_application, host, port) bjoern.run()
You can also simply pass a Python socket(-like) object. Note that you are responsible for initializing and cleaning up the socket in that case.
bjoern.server_run(socket_object, wsgi_application) bjoern.server_run(filedescriptor_as_integer, wsgi_application)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file bjoern-1.4.3.tar.gz
.
File metadata
- Download URL: bjoern-1.4.3.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
9361dc1e8ef22eb749fcf3d16b9023bb1d1c59916b4e32400902648b4805fffd
|
|
MD5 |
16f4a13296dd33747529461c17e4ff9a
|
|
BLAKE2b-256 |
4dc0ab45464d3162fdf13e26c322ba300f98a218043833974e403b04ce4eefa1
|