Twisted 阐述

jiumiao 发布于 2013/09/25 12:25
阅读 1K+
收藏 4
Firefly为什么使用Twisted?
1、基于Python
Twisted是使用Python编写的,强壮的、面向对象的解释性语言。使用Python编程是一种乐趣,易于编写、易于阅读、易于运行。因为Python是跨平台的,所以可以运行Twisted程序在Linux、Windows、Unix和MAC等等系统上。
2、异步和事件驱动的
同步网络编程函数库留给开发者一个痛苦的抉择:要么允许程序在网络通信时失去响应,或者引入非常复杂的线程。Twisted是基于事件的,异步网络通信框架允许编写的程序在处理事件时保持相应,却不需要使用线程。
3、多功能
Twisted包括大量的功能。Email、WEB、news、chat、DNS、SSH、Telnet、RPC、数据库存取或者更多。
4、灵活
Twisted提供了高层类允许快速开始。而且并没有感到受限。如果需要高级功能,或者需要自定义网络协议,也是可以的。用户可以实现自己的网络协议,控制每一个字节。
5、开放源代码
Twisted是免费的。它包含源代码,按照函数库协议发行。并且欢迎在他人在自己的程序中使用Twisted,不必支付任何费用和担心法律问题。如果希望知道一个对象的运行原理也可以直接看源码。
6、社区支持
Twisted有一个活跃的社区包含开发者和用户。如果用户发现了问题,也可以在邮件列表上找到很多开发者来帮助自己。
7、易于整合的平台

一个Twisted程序可以在多种服务之间共享数据,可以整合很多工作。比如可以编写SMTP到XMLRPC的代理,一个通过SSH来更新网站的服务,或者一个包含NNTP接口的WEB讨论组。如果需要在平台之间交换数据,Twisted是个很好的选择。


Firefly官方论坛

加载中
0
七念
七念

Twisted是使用Python编写的,强壮的、面向对象的解释性语言。使用Python编程是一种乐趣,易于编写、易于阅读、易于运行

Twisted是强大的,但是它太庞大了,可扩展性,健壮性,可读性真的很差,同时DEBUG时也很麻烦。这也是为什么openstack用了eventlet而没用twisted的原因。

同时它的设计也不符合python的哲学,simple is better...就像之前的zope一样,它真的很“大”

乌龟壳
乌龟壳
那是个人品味问题,greenlet性能上和其hack底层导致的兼容和隐含的bug都不足以比twisted有更好的质量。如果要做稳定的服务,而且使用epoll的基本都不必做得太复杂,必须twisted或者tornado这种。eventlet和gevent比较适合做客户端型的高并发请求,请求间不需要过多同步操作。
返回顶部
顶部