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