#json-rpc #json-rpc-client #http #protocols #json #http-transport

satpoint-jsonrpc

Rust对JSON-RPC 2.0协议的支持

2个版本

0.16.1 2024年4月15日
0.16.0 2024年4月15日

#1126网络编程


satpoint-bitcoincore-rpc 中使用

CC0 许可

79KB
1.5K SLoC

Status

Rust版本兼容性

此库与Rust 1.48.0 或更高版本兼容。

但是,如果您想使用1.41版本的库,您需要在构建之前锁定一些依赖项。

cargo update -p serde --precise 1.0.156
cargo update -p syn --precise 1.0.107

(如果您的代码是库,您的下游用户需要运行这些命令等。)

Rust JSONRPC客户端

支持发送JSONRPC 2.0请求和接收响应。

例如,连接到本地bitcoind JSON-RPC端点并调用uptime命令。

use jsonrpc::Client;
use jsonrpc::simple_http::{self, SimpleHttpTransport};

fn client(url: &str, user: &str, pass: &str) -> Result<Client, simple_http::Error> {
    let t = SimpleHttpTransport::builder()
        .url(url)?
        .auth(user, Some(pass))
        .build();

    Ok(Client::with_transport(t))
}

// Demonstrate an example JSON-RCP call against bitcoind.
fn main() {
    let client = client("localhost:18443", "user", "pass").expect("failed to create client");
    let request = client.build_request("uptime", &[]);
    let response = client.send_request(request).expect("send_request failed");

    // For other commands this would be a struct matching the returned json.
    let result: u64 = response.result().expect("response is an error, use check_error");
    println!("bitcoind uptime: {}", result);
}

Githooks

为了帮助开发者在CI运行之前捕获错误,我们提供了一些githooks。如果您尚未在本地配置githooks,您可以通过在仓库根目录下运行以下命令来使用此仓库中的githooks:

git config --local core.hooksPath githooks/

或者,在您的.git/hooks目录中添加我们提供的githooks的符号链接。

依赖项

~0.7–2MB
~37K SLoC