异步msgpack rpc

aio-msgpack-rpc的Python项目详细描述


aio msgpack rpc

pipeline statuscoverage report

纯异步实现MsgPack RPC
使用asyncio标准库提供的transports, protocolsstreams

只是一个简单的rpc层实现。

安装

pip install aio-msgpack-rpc

示例

服务器

importasyncioimportaio_msgpack_rpc# handlers can be defined on a class# they can either be async or plain functionsclassMyServicer:asyncdefsum(self,x,y):print(f"sum: {x}, {y}")returnx+ydefnotification(self,msg):print(f"notification: {msg}")asyncdefmain():try:server=awaitasyncio.start_server(aio_msgpack_rpc.Server(MyServicer()),host="localhost",port=18002)whileTrue:awaitasyncio.sleep(0.1)finally:server.close()try:asyncio.get_event_loop().run_until_complete(main())exceptKeyboardInterrupt:pass

客户

importasyncioimportaio_msgpack_rpcasyncdefmain():client=aio_msgpack_rpc.Client(*awaitasyncio.open_connection("localhost",18002))# blocking rpc callsresult=awaitclient.call("sum",1,2)assertresult==3# one way notificationsclient.notify("notification","hello")asyncio.get_event_loop().run_until_complete(main())

基准

与我的开发机器上的官方实现相对应的一些基本性能基准。

packagecall (QPS)notify (QPS)
msgpack-rpc-python541411746
aio-msgpack-rpc578186957

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

推荐PyPI第三方库


热门话题
java如何在href中将struts2文本字段的值作为参数传递?   java检查对象属性是否为空的最佳方法是什么?   java通过Maven使用Junit类别运行Cucumber测试   java如何在selenium Webdriver(Mac)中使用Robot类上传多个文件?   如何用python绘制图形或将python转换为java和Matlab?   java Osgi捆绑包更新和ResourceBundle   java使用流api将流<@Nullable T>转换为流<@NonNull T>   java中EXCEL的平台无关连接字符串   JavaFX中的java表   java Jetty线程池和sun。HttpServer会话   JPA存储库bean的java Spring注入无法工作NullPointerException   java从另一个Kubernetes作业触发Kubernetes   我的java netbeans抽奖计划需要帮助吗   泛型中的java有界类型无法扩展另一个有界类型   如果混合使用全局构建和概要文件构建,java cxfcodegenplugin会生成错误代码   封装SQL平台之间差异的java策略?