#message #user #chain #signature #byte #required #bitcoin

no-std lightning

A Bitcoin Lightning library in Rust. Does most of the hard work, without implying a specific runtime, requiring clients implement basic network logic, chain interactions and disk storage. Still missing tons of error-handling. See GitHub issues for suggested projects if you want to contribute. Don't have to bother telling you not to use this for anything serious, because you'd have to build a client around it to even try.

45 releases

new 0.0.123-beta Apr 19, 2024
0.0.121 Jan 23, 2024
0.0.119 Dec 16, 2023
0.0.118 Oct 24, 2023
0.0.1 Feb 16, 2018

#340 in Magic Beans

Download history 1737/week @ 2023-12-23 3580/week @ 2023-12-30 5251/week @ 2024-01-06 5603/week @ 2024-01-13 5557/week @ 2024-01-20 5008/week @ 2024-01-27 5532/week @ 2024-02-03 9293/week @ 2024-02-10 7800/week @ 2024-02-17 8271/week @ 2024-02-24 9483/week @ 2024-03-02 7048/week @ 2024-03-09 6696/week @ 2024-03-16 5705/week @ 2024-03-23 5773/week @ 2024-03-30 5168/week @ 2024-04-06

24,185 downloads per month
Used in 93 crates (28 directly)

MIT/Apache

6.5MB
104K SLoC

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

Dependencies

~7–10MB
~136K SLoC