#lightning #protocols #bitcoin #rpc

clightningrpc-common

提供从Rust代码到核心闪电守护进程的通用RPC绑定的Crate

4个版本

0.3.0-beta.42023年6月13日
0.3.0-beta.32022年11月17日
0.3.0-beta.22022年7月29日
0.3.0-beta.12022年5月23日

#105 in #lightning

Download history 209/week @ 2024-03-13 234/week @ 2024-03-20 100/week @ 2024-03-27 205/week @ 2024-04-03 222/week @ 2024-04-10 135/week @ 2024-04-17 61/week @ 2024-04-24 151/week @ 2024-05-01 117/week @ 2024-05-08 291/week @ 2024-05-15 266/week @ 2024-05-22 220/week @ 2024-05-29 201/week @ 2024-06-05 181/week @ 2024-06-12 146/week @ 2024-06-19 76/week @ 2024-06-26

656 每月下载量
3 个Crate中使用(通过 clightningrpc-plugin

CC0 许可证

14KB
188 代码行

核心闪电的通用客户端

该Crate通过RPC提供对核心闪电守护进程的通用接口。

项目主页

GitHub Workflow Status (branch) Crates.io docs.rs

该Crate通过RPC提供对 核心闪电 守护进程的通用接口。

clightningrpc 库中可以找到以下引用

请注意,API(rust-clighting-rpc的API,以及c-lightning自身的API)尚未最终确定。这意味着它可能会在不同版本之间发生变化,并可能导致您的编译失败,对此表示歉意!

该Crate通过提供具有通用接口的强类型库来解决与核心闪电的版本兼容性问题,例如

extern crate clightningrpc_common;

use serde::{Deserialize, Serialize};
use std::env;

use clightningrpc_common::client;
use clightningrpc_common::types::Response;

/// Example of type definition
#[derive(Debug, Clone, Deserialize, Serialize)]
struct GetInfoResponse {
    pub id: String,
}

/// Example of type definition
#[derive(Debug, Clone, Deserialize, Serialize)]
struct GetInfoRequest {}

fn main() {
    let sock = env::home_dir().unwrap().join(".lightning/lightning-rpc");
    println!("Using socket {}", sock.display());
    let client = client::Client::new(&sock);
    let method = "getinfo";
    let params = GetInfoRequest {};
    match client
        .send_request(method, params)
        .and_then(|res: Response<GetInfoResponse>| res.into_result())
    {
        Ok(d) => {
            println!("Ok! {:?}", d);
        }
        Err(e) => {
            println!("Error! {}", e);
        }
    }
}

贡献指南

  • 四个空格
  • 提交前请调用 make fmt
  • 如果您能,在提交PR时至少为您的顶级提交GPG签名

支持

如果您想支持此库,请考虑以下方式捐赠

致谢

此库基于Andrew Poelstra的 rust-jsonrpc

依赖项

~0.6–1.4MB
~32K SLoC