Skip to content
forked from jonashaag/bjoern

A screamingly fast Python WSGI server written in C.

License

Notifications You must be signed in to change notification settings

toddjcrane/bjoern

This branch is 1 commit ahead of, 99 commits behind jonashaag/bjoern:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b1f2f7d · Dec 12, 2016
Oct 16, 2016
Jan 14, 2012
Aug 20, 2015
Sep 18, 2011
Sep 18, 2011
Nov 27, 2011
Apr 11, 2016
Apr 28, 2013
Dec 7, 2010
Dec 8, 2013
Oct 28, 2015
Dec 12, 2016
Aug 26, 2016

Repository files navigation

bjoern: Fast And Ultra-Lightweight HTTP/1.1 WSGI Server

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)

About

A screamingly fast Python WSGI server written in C.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 64.5%
  • Python 30.8%
  • Makefile 3.6%
  • Other 1.1%