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.

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 an error.

Logs an entry at the given level.

Log a trace log.