venom是一个即将推出的面向python的rpc框架
venom的Python项目详细描述
venom是一个即将推出的面向python的rpc框架。它具有一个简单的、可测试的、可组合的服务模型,并支持python 3typing模块。它将支持一元(单消息)和流式通信模式,灵感来自GRPC。该框架使用简单的消息格式进行通信,与protocolbuffer格式兼容。venom的目标是为rpc服务开发提供一个低开销的框架,特别是在python中,同时坚持与语言无关的通信标准。
到目前为止,venom rpc支持定义为服务方法的一元请求和回复。该框架旨在支持不同的服务器实现。
当前可用的实现方式是:
- 使用aiohttp(异步)或flask(仅同步)的一元http/1协议实现
- 使用grpcio 实现一元grpc协议
目前的文件是最低限度的!有关详细信息,请转到examples/文件夹。
安装
venom rpc alpha需要python 3.5。最终版本可能需要Python3.6。
要使用'pip'安装venom以便与aiohttp一起使用,请运行:
pip install venom[aiohttp]
要使用'pip'安装venom以用于flask,请运行:
pip install flask-venom
路线图
第一个版本所需的主要功能列表:
- 模式验证
- 文档
- 从请求参数生成消息
- 用于api反射的openapi(swagger)模式服务
未来潜在功能的无序列表:
用于从服务生成可共享存根的cli
使用aiohttp
实现流式websocket这将是唯一一个完全支持流媒体的解决方案,并且可以在今天的浏览器中使用。
流式grpc(http/2)实现,例如hyper-h2
已经有了一个基于grpcio的实验性grpc实现,但是没有真正支持异步调用,因为官方python库不支持异步调用。
msgpack序列化支持
ProtocolBuffer支持
protocolbuffer现在的问题是protocolbuffer的官方python库不是很pythonic, 而python的易开发性是venom背后的主要动力。
流式响应将使用Python3.6异步生成器。