#lightning #daemon #binding #lnd #proto #synced #version

bin+lib lnd-rust

Rust binding to the Lightning Network Daemon

11 unstable releases (4 breaking)

0.5.0 Sep 11, 2019
0.4.0 Jan 30, 2019
0.3.4 Nov 27, 2018
0.3.3 Sep 2, 2018
0.1.2 Jul 6, 2018

#6 in #lnd

MIT license

1.5MB
31K SLoC

lnd-rust

The lnd-rust is the rust binding to the Lightning Network Daemon.

Requirements

Go and lnd are required to generate the additional code and build the package.

Updating

The file protos/rpc.proto should be synced with https://github.com/lightningnetwork/lnd/blob/master/lnrpc/rpc.proto.

Tested with the Lightning Network Daemon version "0.4.2".

Usage

First, add the following to Cargo.toml:

[dependencies]
lnd-rust = "0.1"
grpc = "0.5.0"

Next, create lightning client object:

let lightning_client = {
    let certificate = lnd_rust::TLSCertificate::from_der_path("path/to/file.crt").unwrap();
    let config = Default::default();
    let socket = "127.0.0.1:9000".parse().unwrap();
    let tls = certificate.into_tls("localhost").unwrap();
    let grpc_client = grpc::Client::new_expl(&socket_addr, "localhost", tls, config).unwrap();
    lnd_rust::rpc_grpc::LightningClient::with_client(grpc_client)
};

Now, it is possible to make requests:

let request = lnd_rust::rpc::GetInfoRequest::new();
let options = grpc::RequestOptions::new();
let response = lightning_client.get_info(options, request);

See src/bin/main.rs for details.

Dependencies

~9–18MB
~218K SLoC