3个版本 (重大更改)
0.3.0 | 2021年4月26日 |
---|---|
0.2.0 | 2021年1月11日 |
0.1.0 | 2021年1月10日 |
在 #json-rpc-client 中排名第 55
每月下载量 157
被 jsonrpc_client 使用
12KB
232 行代码(不含注释)
无废话的Rust JSON-RPC客户端
特性
- 无样板代码:由过程宏驱动
- 无客户端锁定:对底层HTTP客户端有完全的自由控制
- 轻量级:仅依赖于syn和serde
- 异步就绪
它是如何工作的?
我们将一个特质作为过程宏的输入,并输出另一个具有所有函数默认实现的特质。这允许我们移除所有制作JSON-RPC调用的样板代码,同时您还可以定义一个漂亮的接口!
如何使用它?
-
依赖于
jsonrpc_client
[dependencies] jsonrpc_client = { version = "*", features = ["reqwest"] }
-
定义一个描述您想要与之通信的JSON-RPC API的特质,并用
#[jsonrpc_client::api]
注释#[jsonrpc_client::api] pub trait Math { async fn subtract(&self, subtrahend: i64, minuend: i64) -> i64; }
-
定义您的客户端
#[jsonrpc_client::implement(Math)] struct Client { inner: reqwest::Client, base_url: reqwest::Url, }
-
开始使用您的客户端!
后端
目前,客户端支持几个后端,所有这些都可以通过单独的功能标志激活
- reqwest
- surf
- isahc
欢迎对更多后端的支持。
不幸的是,并不是所有后端都能得到支持。特别是
- hreq:由于它们的
Agent
在发送请求时接收&mut self
,因此无法支持,这不符合SendRequest
特质。 - awc:由于它们的
Client
没有实现Send
,因此无法支持。
依赖关系
~1.5MB
~35K SLoC