7个不稳定版本

使用旧的Rust 2015

0.4.1 2019年10月10日
0.4.0 2018年4月22日
0.3.0 2018年4月20日
0.2.2 2018年4月20日
0.0.1 2018年4月20日

#2 in #response-object

Download history 41/week @ 2023-11-27 44/week @ 2023-12-04 40/week @ 2023-12-11 56/week @ 2023-12-18 9/week @ 2023-12-25 18/week @ 2024-01-01 32/week @ 2024-01-08 20/week @ 2024-01-15 27/week @ 2024-01-22 22/week @ 2024-01-29 23/week @ 2024-02-05 33/week @ 2024-02-12 49/week @ 2024-02-19 51/week @ 2024-02-26 31/week @ 2024-03-04 22/week @ 2024-03-11

156 每月下载量

MIT/Apache

33KB
353

jrpc:一个用于jsonrpc规范的类型的超轻量级crate

Build Status Build status Docs

查看文档以获取更多详细信息。

许可证

本仓库中的源代码受以下任一许可证的许可:

由您选择。

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在工作中的任何贡献,都应按上述方式双重许可,而无需任何附加条款或条件。


lib.rs:

jrpc:一个用于jsonrpc规范的类型的超轻量级crate

此crate定义了jsonrpc规范的datatypes...就这么简单。

此crate永远不会触及网络、文件系统等。它仅使用serde轻松构建、序列化和反序列化请求和响应数据类型。

规范

以下内容直接复制粘贴自:http://www.jsonrpc.org/specification

类型尝试在其文档字符串中正确复制相关文档片段。

1 概述

JSON-RPC是一种无状态的轻量级远程过程调用(RPC)协议。本规范主要定义了几个数据结构及其处理规则。它在传输上具有不可知性,这意味着这些概念可以在同一进程中使用,通过套接字、通过HTTP或在许多不同的消息传递环境中使用。它使用JSON(RFC 4627)作为数据格式。

它设计得很简单!

2 术语

在此文档中,“MUST”、“MUST NOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、“MAY”和“OPTIONAL”等关键字应按RFC 2119中所述解释。

由于JSON-RPC使用JSON,因此它具有相同的类型系统(参见http://www.json.org或RFC 4627)。JSON可以表示四种原始类型(字符串、数字、布尔值和null)和两种结构化类型(对象和数组)。在本规范中,“原始”一词指的是这四种原始JSON类型中的任何一种。“结构化”一词指的是这两种结构化JSON类型中的任何一种。当此文档引用任何JSON类型时,其首字母始终大写:对象、数组、字符串、数字、布尔值、null。True和False也大写。

客户端和服务器之间交换的所有成员名称,如果考虑进行任何类型的匹配,应被视为区分大小写的。函数、方法和过程可以假定可以互换。

客户端定义为请求对象的来源和响应对象的处理器。

服务器定义为响应对象的来源和请求对象的处理器。

本规范的任何一种实现都可以轻松地同时扮演这两种角色,即使是对不同的客户端或同一客户端。本规范不涉及这一层复杂性。

3 兼容性

JSON-RPC 2.0请求对象和响应对象可能与现有的JSON-RPC 1.0客户端或服务器不兼容。然而,区分这两个版本很容易,因为2.0始终有一个名为“jsonrpc”的成员,其字符串值为“2.0”,而1.0没有。大多数2.0实现应考虑尝试处理1.0对象,即使不是1.0的端到端和类提示方面。

4 请求对象

参见Request

4.1 通知

参见IdReq

4.2 参数结构

参见Request.params

5 响应对象

参见Response

5.1 错误对象

参见ErrorObject

6 批量操作

注意:只需简单使用一个Vec<Request>和一个Vec<Response>即可。

要同时发送多个请求对象,客户端可以发送一个填充有请求对象的数组。

在处理完所有批量请求对象后,服务器应以一个包含相应响应对象的数组进行响应。对于每个请求对象,都应该有一个响应对象,除了通知不应该有响应对象。服务器可以将批量rpc调用作为一组并发任务处理,以任何顺序和任何并行度处理它们。

从批量调用返回的响应对象可以在数组中以任何顺序返回。客户端应根据每个对象中的id成员在请求对象集合和结果响应对象集合之间匹配上下文。

如果批量rpc调用本身未能识别为有效的JSON或至少包含一个值的数组,则服务器必须返回一个单独的响应对象。如果响应数组中没有包含要发送给客户端的响应对象,则服务器不得返回空数组,而应返回空值。

7 示例

省略。参见规范

8 扩展

此库不支持检查扩展。有关规范的详细信息,请参阅 Request.method

依赖项

~0.7–1.4MB
~32K SLoC