Skip to main content

A screamingly fast Python WSGI server written in C.

Project description

Join the chat at https://gitter.im/jonashaag/bjoern

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


Download files

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

Source Distribution

bjoern-1.4.3.tar.gz (28.8 kB view details)

Uploaded Source

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

Hashes for bjoern-1.4.3.tar.gz
Algorithm Hash digest
SHA256 9361dc1e8ef22eb749fcf3d16b9023bb1d1c59916b4e32400902648b4805fffd
MD5 16f4a13296dd33747529461c17e4ff9a
BLAKE2b-256 4dc0ab45464d3162fdf13e26c322ba300f98a218043833974e403b04ce4eefa1

See more details on using hashes here.

Supported by

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