微型grpc框架,如烧瓶

homi的Python项目详细描述


霍米

PyPI - Python VersionPyPIPyPI download monthcodecovViewCount

微型grpc框架,如烧瓶

安装

pip install homi

特色

  • [x] 无需配置即可运行服务器
  • [x] 使用decorator模式连接服务方法
  • [x] 自动解析请求数据到dict,不使用grpc请求对象
  • [x] 自动设置参数
  • [x] 支持所有grpc服务类型(一元一元、一元流、流一元、流流)
  • [x] TLS支持
  • [x] 只返回dict类型,而不是grpc对象

示例

检查更多example

^{pr2}$

服务实例

服务类类似于flask的蓝图。您可以基于服务分离文件或添加其他人创建的服务。 另外,我们将来还可以重写已经注册的方法。在

fromhomiimportApp,Server,Servicefromhomi.extend.serviceimportreflection_service,health_servicefromhelloworld_pb2importDESCRIPTORapp=App(services=[reflection_service,health_service,])greeter=Service(DESCRIPTOR.services_by_name['Greeter'])@greeter.method()defSayHello(name,**kwargs):print(f"{name} is request SayHello")return{"message":f"Hello {name}!"}# you can share service to pypiapp.add_service(greeter)

运行服务器

# if app file name is app.py
homi run

# run ohter app file
homi run other_app.py

# change port
homi run -p 50055# change total worker
homi run -w 5# run TLS server
homi run --private_key server.key --certificate server.crt

关系项目

更改日志

  • 0.1.7款

    • 修复错误
      • init.py中删除HomiRealServerTestCase,HomiTestCase,请直接导入测试类
      • 添加加密依赖项
  • 0.1.6款

    • 特色
      • #30:支持atls服务器[实验性]
  • 0.1.5节

    • 特色
      • #29:支持tls服务器
  • 0.1.1节

    • 修复错误
      • #23:更改支持python version>;=3.8(对于TypedDict)
      • #22:移除处理程序包装自变量
  • 0.1.0款

    • 打破改变!!!#十九
      • 添加应用程序
        • 现在你必须使用App类制作服务器!在
      • 添加服务
        • 可以按服务或方法分隔代码。在
      • 添加配置
        • 现在你可以在应用程序中使用服务配置和覆盖
  • 0.0.4.α

    • 添加真实的服务器测试用例
    • 支持grpc运行状况
  • 0.0.3

    • 支持所有方法类型
    • 添加flak8皮棉
    • 添加测试用例
    • #9自动解析响应消息
  • 0.0.1(初始化项目)

    • 使用cli运行服务器
    • 地狱世界的例子

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

推荐PyPI第三方库


热门话题
java Drools:不触发规则2,而在内部触发规则1(进入循环)   java有一个易于破解的开源Tivo媒体服务器吗?   Elasticsearch中termFilter与mustFilter in、shouldFilter和orFilter之间的java差异   java在两台计算机之间传输文件   Java主版本不匹配   hibernate Java Netbeans BeanCreationException   java如何在JFreeChart linechart中显示数据库值   java多个持久性错误IntelliJ   java在Python 3.6中调用sklearn2pmml()函数会引发RuntimeError   java正在执行包含在带有空格的文件夹中的cmd文件   java Spring Boot无法访问REST控制器   Java Spring启动外部日志文件jar   java为什么Clojure用未检查的异常包装检查的异常?   java使用ANTLR4获取方法的注释   Java:通用静态多维数组   java JavaFX了解场景状态(打开或关闭)