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::iotrait 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
Re-exports§
- pub extern crate bitcoin;
- pub extern crate lightning_invoice as bolt11_- invoice; 
- pub extern crate lightning_types as types;
Modules§
- blinded_path 
- Creating blinded paths and related utilities live here.
- chain
- Structs and traits which allow other parts of rust-lightning to interact with the blockchain.
- events
- Events are returned from various bits in the library which indicate some action must be taken by the client.
- io
- Extension of the bitcoin::io module
- ln
- Implementations of various parts of the Lightning protocol are in this module.
- offers
- Implementation of Lightning Offers (BOLT 12).
- onion_message 
- Onion Messages: sending, receiving, forwarding, and ancillary utilities live here
- routing
- Structs and impls for receiving messages about the network and storing the topology live here.
- sign
- Provides keys to LDK and defines some useful objects describing spendable on-chain outputs.
- util
- Some utility modules live here. See individual sub-modules for more info.
Macros§
- decode_tlv_ stream 
- Implements the TLVs deserialization part in a Readableimplementation of a struct.
- encode_tlv_ stream 
- Implements the TLVs serialization part in a Writeableimplementation of a struct.
- impl_writeable_ msg 
- Implements Readable/Writeablefor a message struct that may include non-TLV and TLV-encoded parts.
- impl_writeable_ tlv_ based 
- Implements Readable/Writeablefor a struct storing it as a set of TLVs If$fieldtyisrequired, then$fieldis a required field that is not anOptionnor aVec. If$fieldtyis(default_value, $default), then$fieldwill be set to$defaultif not present. If$fieldtyisoption, then$fieldis optional field. If$fieldtyisoptional_vec, then$fieldis aVec, which needs to have its individual elements serialized. Note that foroptional_vecno bytes are written if the vec is empty
- impl_writeable_ tlv_ based_ enum 
- Implement ReadableandWriteablefor an enum, with struct variants stored as TLVs and tuple variants stored directly.
- impl_writeable_ tlv_ based_ enum_ upgradable 
- Implement MaybeReadableandWriteablefor an enum, with struct variants stored as TLVs and tuple variants stored directly.
- log_bytes 
- Logs a byte slice in hex format.
- log_debug 
- Log at the DEBUGlevel.
- log_error 
- Log at the ERRORlevel.
- log_gossip 
- Log at the GOSSIPlevel.
- log_info 
- Log at the INFOlevel.
- log_pubkey 
- Logs a pubkey in hex format.
- log_trace 
- Log at the TRACElevel.
- log_warn 
- Log at the WARNlevel.
- read_tlv_ fields 
- Reads a suffix added by write_tlv_fields.
- write_tlv_ fields 
- Writes out a suffix to an object as a length-prefixed TLV stream which contains potentially backwards-compatible, optional fields which old nodes can happily ignore.