基于json-rpc 2.0规范的单个文件中的最小python rpc实现
jsonrpyc的Python项目详细描述
-
基于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
开发
- 源托管在GitHub
- 在GitHub Issues上报告问题、问题和功能请求