一个新型的基于协程的异步IO框架

vlcp是一个SDN控制器框架,它内置了一个异步IO框架,除了控制器以外,也可以用来开发Web服务和其他网络应用,目前支持的协议包括HTTP,Redis,JSON-RPC与OpenFlow,不过可以很容易扩展新的协议。 与其他异步IO框架相比,vlcp有以下的特点:

  1. 完全基于协程,从socket层开始就是协程驱动的。
  2. 协程间同步使用特有的Event/EventMatcher机制,这是一种pub/sub的模型,允许程序间非常松散的耦合。比起asyncio的Future来说要简单、灵活得多。
  3. 得益于独有的pub/sub协同模型,实现新协议非常容易,基本只需要实现一个parse方法,将字节流解析为相应的Event,剩下的完全不需要操心。
  4. 使用可动态加载、卸载、或重新载入的模块来组织代码,可以实现业务组件的热升级,在不重启服务、不中断当前业务、不断开当前连接(包括长连接)的情况下更新到新版本。

vlcp兼容Python2.6+与Python3.4+

几篇介绍文章: 异步IO基础: https://zhuanlan.zhihu.com/p/21803823 Web的应用: https://zhuanlan.zhihu.com/p/21813920 源代码地址为 https://github.com/hubo1016/vlcp

0 comments