基于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 JavaBridge errno=10054被Remotehost关闭   javafx如何在每次调用方法中的变量时更新它?(爪哇)   java mod_群集在发现后未平衡负载   Java软件编辑器/语法高亮   java为什么不能强制转换数组的结果。asList()到ArrayList?   java HIBERNATE:无法使用HIBERNATE从MySQL中提取数据   java在Google地图片段上添加布局   java在AbstractTableModel中执行setValueAt之前,我如何做一些事情?   java在整个Tomcat运行时保存变量   java如何在Thymeleaf模板中获取环境变量的值?   java Selenium Chrome驱动程序针对属性的标签   java正则表达式捕获未知数量的重复组