Expand description

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 it’s 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.

default features are:

  • std - enables functionalities which require std, including std::io trait implementations and things which utilize time
  • grind_signatures - enables generation of low-r bitcoin signatures, which saves 1 byte per signature in 50% of the cases (see bitcoin PR #13666)

Available features are:

  • std
  • grind_signatures
  • no-std - exposes write trait implementations from the core2 crate (at least one of no-std or std are required)
  • Skip logging of messages at levels below the given log level:
    • max_level_off
    • max_level_error
    • max_level_warn
    • max_level_info
    • max_level_debug
    • max_level_trace

Modules

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

iostd

Re-export of either core2::io or std::io, depending on the std feature flag. Traits, helpers, and type definitions for core I/O functionality.

High level lightning structs and impls live here.

Onion Messages: sending, receiving, forwarding, and ancillary utilities live here

Structs and impls for receiving messages about the network and storing the topology live here.

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

Macros

Logs a byte slice in hex format.

Log at the DEBUG level.

Log at the ERROR level.

Log at the GOSSIP level.

Log at the INFO level.

Log at the TRACE level.

Log at the WARN level.