基于json-rpc 2.0规范的单个文件中的最小python rpc实现

jsonrpyc的Python项目详细描述


jsonrpyc logo -

Build StatusDocumentation Status

基于JSON-RPC 2.0 specs的单个文件中的最小python rpc实现。

用法

jsonrpyc.RPC实例基本上包装输入流和输出流,以便与其他services通信。只要服务严格实现json-rpc 2.0规范,它甚至不必用python编写。nodejs的合适实现是node-json-rpc。一个jsonrpyc.RPC实例可以包装一个target对象。传入请求将被路由到此对象的方法,其结果可能作为响应发送回。示例实现:

server.py
importjsonrpycclassMyTarget(object):defgreet(self,name):return"Hi, %s!"%namejsonrpyc.RPC(MyTarget())
client.py
importjsonrpycfromsubprocessimportPopen,PIPEp=Popen(["python","server.py"],stdin=PIPE,stdout=PIPE)rpc=jsonrpyc.RPC(stdout=p.stdin,stdin=p.stdout)## sync usage#print(rpc("greet",args=("John",),block=0.1))# => "Hi, John!"## async usage#defcb(err,res=None):iferr:raiseerrprint("callback got: "+res)rpc("greet",args=("John",),callback=cb)# cb is called asynchronously which prints# => "callback got: Hi, John!"

安装

通过pip

pip install jsonrpyc

或者简单地将文件复制到项目中。

贡献

如果你想为jsonrpyc做贡献,我很高兴收到pull请求。只需确保添加一个新的测试用例并通过:

> python -m unittest tests

开发

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

推荐PyPI第三方库


热门话题
Java Selenium“findElement”找不到现有对象   java hibernate如何在JPA风格的引导过程中注册实体类   java为什么getX()方法首先执行而不是构造函数   Java写入int的第一个字节   java Word文档到html解析器,保留所有文本样式(下标、上标、项目符号等)   为每个java对象实例生成唯一字符串   Java类卡片枚举示例。修订过的   Android与Java内部类概念   在java中优化x小数位的答案   从队列的挂起消息列表中提取消息时出现java性能问题   java查找正则表达式的哪个部分导致了匹配   Java8函数“包装器”函数,在执行给定的lambda之前执行某些操作?   带有限定符@Default的ZZZZ类型的java未满足依赖项   如何在java中将XML文件转换为LaTex?   Android中的java封闭文本边界?   java如何更改此代码,使其更新当前用户而不是创建新用户?   java spring启动应用程序属性暂存和生产   Java:如何将字符串转换为int   java跟踪NullPointerException的最佳方法是什么?   java为什么我的JAR文件在与ProGuard混淆后不能运行?主类正在变得模糊/库