Crate lightning[][src]

Rust-Lightning, not Rusty's Lightning!

A full-featured but also flexible lightning implementation, in library form. This allows the user (you) to decide how they wish to use it instead of being a fully self-contained daemon. This means there is no built-in threading/execution environment and its up to the user to figure out how best to make networking happen/timers fire/things get written to disk/keys get generated/etc. This makes it a good candidate for tight integration into an existing wallet instead of having a rather-separate lightning appendage to a wallet.

Modules

chain

Module provides structs and traits which allow other parts of rust-lightning to interact with the blockchain.

ln

High level lightning structs and impls live here. You probably want to create a channelmanager::ChannelManager, and a router::Router first. Then, you probably want to pass them both on to a peer_handler::PeerManager and use that to create/manage connections and call get_and_clear_pending_events after each action, handling them appropriately. When you want to open/close a channel or send a payment, call into your ChannelManager and when you want to learn things about the network topology (eg get a route for sending a payment), call into your Router.

util

Some utility modules live here. See individual sub-modules for more info.