基于郁金香的实验性网络服务器(pep-3156)

archangel的Python项目详细描述


大天使是一个网页服务器,设计快速,易于个人使用 用法创建它是为了替换基于flup的内部web服务器 用于http服务的fcgi和wsgiref(基本上任何东西都是一个改进)如下 以及探索Guido van Rossum基于pep-3156/Tulip的新库

大天使被设计成“快”。但这并不意味着大天使 是快速的,大天使的目的是探索服务器使用 基于郁金香的事件循环可以去和什么是需要得到它那里。

作为一种额外的副作用,它应该在雾中起到灯塔的作用 你应该或不应该对Tulip做什么(当然,它仍然是 确定分水岭的哪一边结束)

宗旨:

只有在我们需要的时候才做:
及时做事
只做我们必须做的事:
懒惰
快速完成:
尽快回到睡眠状态

大天使提供了什么

  • 预分叉网络服务器
  • wsgi连接器
  • 能够在同一进程中运行多个不同的WSGI应用程序 根据路径信息或主机头将请求单独路由到它们

大天使不提供什么

  • 类似cron的功能,现在通过Tulip实现。获取的副本 使用loop = tulip.get_event_loop()的主循环,然后附加cron 使用loop.call_repeatably(15.0, my_cron)函数调用 my_cron函数每15秒
  • Unix信号支持,Tulip已经通过 add_signal_handler功能
  • 长时间运行的后台任务。Tulip可用于启动后台 上下文通过call_soon。注意,cpu绑定的任务应该yield 定期防止阻塞其他任务或使用run_in_executor 由主回路提供。

未来可能的功能

  • 内部“信号”允许应用程序相互发送信号并作出响应 相应地

兼容性说明

  • 为了提高性能,您使用的任何第三方库都需要 tulip/pep-3156兼容,并在阻塞调用时返回future,以便 可能是yield from'd。使用open()和socket.socket或其他 阻塞调用仍然可以正常工作,但会阻止其他请求 在系统调用被阻止时处理
  • 要使用传统样式的锁和事件,请使用tulip中的实现 而不是threading

TWIG:Tulipe Webservices网关接口

大天使为开发一个新的松散协议提供了一个测试平台 关闭pep-3333/WSGI,设计用于Tulip并提供更多 “流”式接口。这可用于实现长轮询客户端 以及通过使用 将与大天使绑定的中间件

可以找到树枝规范的初始草稿here

要求

  • python 3.3或更高版本
  • distutils2(要替换setup.py,将提供回退)
  • Tulip库的副本
  • 用于分析配置文件的PyYaml

获取最新版本

使用mercurial/hg可以获得最新版本的大天使 以下命令:

hg clone http://code.pocketnix.org/archangel

更改日志

0.3

  • 添加了细枝模块
  • 已添加请求对象
  • 添加了响应对象
  • 展开细枝pep

0.2.1

  • 更新文件名的小肿块(wsgi-stream=>;twig)

0.2:新风

  • 将代码拆分为模块
  • 对wsgiprotocol和fri的名称更改结束,现在沿“fcgi”和 “http”行
  • 框架可以使用 “如果你眯着眼睛看得够紧,看起来像wsgi”协议

0.1.2

  • 添加了wsgi-stream规范
  • 完善的文档和链接
  • 添加了更改日志

0.1.1

  • 初始代码
  • 自述文件

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

推荐PyPI第三方库


热门话题
http POST请求Java CouchDB   java删除带有大量尾随0的浮点字符串上的科学符号   JavaEE5和Hibernate   java如何在Spring Social中获得比特定id更早的tweet   java是框架。revalidate()在事件后获取输出是否重要?   java为什么不能返回通用映射?   java如何理解和优化工厂方法的高自时间   java Eclipse 202006错误由于项目的生成路径不完整,因此未生成该项目   多线程是java。util。向量序列化线程安全?   在Eclipse和java中使用不同的构建配置。属性文件   编译Java:从命令行运行的问题   java如何知道消息是否已确认/取消?   Java铸造一套   java Android Seekbar progress已更改变量,给出错误