快速异步python web服务器

nfapws的Python项目详细描述


这个自述文件最初是由 fapws3,由nfapws python的维护者吴哲修改 包以详细说明一些安装说明。

Introduction

这是一个使用wonderfull libev的python web服务器

http://software.schmorp.de/pkg/libev.html

图书馆。因此,这是另一个类似于 水母,扭曲,杏子。fapws是一个符合wsgi的web服务器。

What are Fapws2 and Fapws3 about ?

fapws1、fapws2和fapws3是“内部”项目的名称。重命名 与完全重写相对应。

一开始我做了fapws1,一个基于apricot的python扩展 代码。然后,很快就需要有更多的功能, 我叫它fapws2。FAPWS1从未出版过。FAPWS2是 基于libevent的http库重建。很好,但是我 已被强制修改evhttp_handle_请求。尽管有很多邮件 在libevent邮件列表中,没有人同意接受我的修补程序 libevent的http代码。因此,或与libevent<;1.3e或 在将libevent用于fapws之前,必须更改它的代码。这个 不是很好的工作方式;-(。比fapws3更重要的是 fapws2不依赖于http的libevent api。在那一刻 marc lehmann在libevent邮件列表中发布了一封描述 创建类似libevent的“新”优化事件库。 因为代码对我来说更干净, 提供的文档

http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod

很清楚,我决定试一试。

对FAPWS2的支持将严格限于bug修复。我的当前 工作重点将放在FAPWS3上。

Why a new python web server ?

在这种情况下,通常的问题是为什么要换一个新的?简而言之, 答案是因为听起来杏子没有得到更多的维护,而且 因为水母和麻花不能像杏子那样快。的确, 经过几次纯性能测试后,由于 libevent库用于apricot,是最快的python web服务器。

但这并不是唯一的原因。个人而言,我更喜欢活动网站 服务器。实际上,这样的架构提供了更高性能的web服务器和 更有限的记忆足迹。你可以很容易地安装它们 内存有限的机器(例如VDS)。

Philosophy:

fapws必须保持最简单和最快的web服务器。因此 应用程序的核心非常有限。每个附加功能 将放在“contrib”子目录中。这是瓦伦塔里 磁盘空间“脚印”的原因。因此,FAPWS还必须促进 磁盘利用率。

How to install fapws?

Pre-requisit:

  • 带有头文件的python,版本>;=2.4,(在debian中,sudo aptitude install python python-dev
  • 带有头文件的libev,版本>;=3.49(在debian中,sudo aptitude install libev3 libev-dev

警告:

为了避免与以前的版本(称为fapws2)发生冲突,最好 在安装新的之前将其移除。

Install fapws:

sudo easy_install nfapws

How to use Fapws ?

使用fapws非常简单,可以通过4个主要步骤来完成:

  1. 使用方法定义webserve的主要参数 “开始”和“基础”方法。除非你真的知道你是什么 我强烈建议使用 包裹。
  2. 定义wsgi python回调。
  3. 链接先前创建的python回调的url路径。
  4. 通过触发“run”方法启动web服务器。
  5. 如libev文档中所述,您可以控制 使用了事件循环。默认情况下,Libev Esti最适合做什么 您的体系结构,但可以使用 环境变量:libev_flags。选择是:1=选择, 2=轮询(除Windows以外的所有位置),4=epoll(Linux),8=kqueue(BSD 克隆),16=devpoll(solaris 8),32=端口(solaris 10)

要获得更多帮助,请检查示例。

How to get news about Fapws?

你可以在我自己的博客上找到关于fapws的信息: http://william-os4y.livejournal.com/

Where it can run?

理论上讲,在python和libev都运行的任何地方。

玩得开心。

威廉

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java泛型和基类   ProcessBuilder或DefaultExecutor启动的“RunAs”子进程的java读取标准输出   java应用程序在尝试登录时突然停止   Java:神秘的Java未捕获异常处理程序[带代码]   java JavaFX NumberAxis自动范围无限循环   最新版本和旧版本冲突的java双Maven依赖关系   java如何导入带有部署变量类名的静态函数?   编译器构造不同的JDK更新会产生不同的Java字节码吗?   java无法在struts 1.1中上载任何超过250 MB大小的文件   java调整jcombobox下拉菜单的宽度   java如何在某些情况下忽略@SQLDelete注释   在Eclipse for Java EE developers edition中禁用HTML警告   java HttpUrlConnection重置请求属性   java@Provider资源未在rest应用程序中注册   java TOP N使用JPA连接   java在使用反射调用方法时区分int和Integer参数