venom是一个即将推出的面向python的rpc框架

venom的Python项目详细描述


https://img.shields.io/travis/biosustain/venom/master.svg?style=flat-squarehttps://img.shields.io/pypi/v/venom.svg?style=flat-squarehttps://img.shields.io/pypi/l/venom.svg?style=flat-square

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异步生成器。

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

推荐PyPI第三方库


热门话题
当JUnit测试失败时,java会显示一条用户友好的消息   java着色器不渲染到窗口   java CXF DOSGi正在忽略注释   我想把这行JAVA改成kotlin   java如果我想在ArrayQue中提供null,我该怎么做   java如何在Springboot中为线程调度命名   java如何将使用者<String>传递给方法   java如何在GWT中检查正则表达式的时间戳?   将Mongodb与Java连接时,在类路径上找不到SLF4J   使用Java创建数组数组   java Hibernate获取对象并另存为外键   java应用程序在打开活动时崩溃   java如何从AlarmManager BroadcastReceiver调用MainActivity方法?   Executor服务中的java不确定任务   JavaSpringMVC本地主机工作应用程序在Heroku部署后返回错误404   当精灵与加速计一起旋转时,java将精灵弹离墙壁   Java:可以创建一个带有“变量”字段的类吗?   java OpenGL空指针异常   使用servlet登录facebook时出现java错误   Android Studio中的java Junit