简介

bjoern是一个用C语言编写的,快速超轻量级的 Python WSGI服务器。

为什么说它很酷

bjoern是最快速的,最小的并且是最轻量级的WSGI服务器。有以下特性:

  • 1000 行的C代码
  • 占用内存 600KB
  • 单线程没有其他协同程序
  • 可以绑定到TCP主机:端口地址和Unix套接字
  • 支持HTTP1.0/1.1,包含支持HTTP1.1的分块响应

安装

libev

Arch Linux

pacman -S libev

Ubuntu

apt-get install libev-dev

Fedora, CentOS

yum install libev-devel

Mac OS X (使用homebrew)

brew install libev

bjoern

对大多数用户,最简单的安装bjoern的方式是使用pip。确定libev已经安装后:

pip install bjoern

也可使用setup.py文件直接安装bjoern:

python setup.py install

对于一些Linux系统(尤其是Fedora和CentOS),该libdev头可能安装到默认路径以为。为了构建bjoern,当运行setup.py时,需要输出CFLAGS,例如:

CFLAGS=-I/usr/include/libev python setup.py install

用法

# 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, reuseport=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')

另外, 主循环可以单独运行:

bjoern.listen(wsgi_application, host, port)
bjoern.run()

你也可以简单的传递一个Python socket对象。注意,这时你要负责初始化和清除该socket。

bjoern.server_run(socket_object, wsgi_application)
bjoern.server_run(filedescriptor_as_integer, wsgi_application)

来源:jopen