1 个不稳定版本
0.0.1 | 2024 年 6 月 19 日 |
---|
#32 在 #rpc-api
15KB
188 行代码(不包括注释)
Elite RPC
具有不同传输层和协议层的类型安全 JSON RPC 客户端。
概述
该库为 Rust 提供了类型安全的 JSON RPC 客户端实现,支持各种传输层。它设计得易于使用,同时通过 Rust 强大的类型系统确保安全性和可靠性。
功能
- 类型安全的 JSON RPC 客户端实现
- 支持多个传输层
- 易于使用,可轻松集成到项目中
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
elite-rpc = "0.0.1"
用法
以下是一个使用该库的简单示例
use elite_rpc::Client;
use elite_rpc::protocol::Protocol;
use elite_rpc::transport::Transport;
use elite_rpc::EliteRPC;
pub struct MockTransport;
#[derive(Clone)]
pub struct MockProtocol;
impl Transport<MockProtocol> for MockTransport {
fn new(_: &str, _: MockProtocol) -> anyhow::Result<Self>
where
Self: Sized,
{
Ok(Self)
}
fn call(
&self,
_: &str,
_: &<MockProtocol as Protocol>::InnerType,
) -> anyhow::Result<<MockProtocol as Protocol>::InnerType> {
Ok(())
}
}
impl Protocol for MockProtocol {
type InnerType = ();
fn from_from_request(
&self,
_: &[u8],
_: Option<crate::protocol::Encoding>,
) -> anyhow::Result<Self::InnerType> {
Ok(())
}
fn new() -> anyhow::Result<Self>
where
Self: Sized,
{
Ok(MockProtocol)
}
fn to_request(&self, _: &str, _: &Self::InnerType) -> anyhow::Result<Self::InnerType> {
Ok(())
}
}
fn main() {
let rpc = EliteRPC::<MockTransport, MockProtocol>::new("https://127.0.0.1:8545")?;
let response = rpc.call("method_name", &())?;
assert_eq!(response, ());
}
将 "https://127.0.0.1:8545", "method_name" 和参数替换为您的实际 JSON RPC 端点和方法。
许可证

具有不同传输层和协议层的类型安全 JSON RPC 客户端。
版权所有 (C) 2024 Vincenzo Palazzo vincenzopalazzodev@gmail.com
本程序是免费软件;您可以重新分配它并/或修改它,具体请参阅自由软件基金会发布的 GNU 通用公共许可证的条款;许可证版本为 2。
本程序分发时希望它对您有用,但没有任何保证;甚至没有关于适销性或针对特定目的的隐含保证。有关详细信息,请参阅 GNU 通用公共许可证。
您应已收到与该程序一起提供的 GNU 通用公共许可证副本;如果没有,请写信给自由软件基金会,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA。
依赖关系
~8–16MB
~230K SLoC