# rust-lightning
*A flexible [[Lightning]] implementation and supporting batteries*
https://github.com/rust-bitcoin/rust-lightning
Links: [[Rust]], [[Lightning]], [[Lightning Dev Kit|LDK]]
- Basically, use this if you need custom features like your own chain sync, key management, data storage and backup, etc. Otherwise [[lnd]] / [[c-lightning]] are fine.
- Documentation: https://lightningdevkit.org/docs/
- Building a Node with LDK in Rust
- Using LDK
- Key Management
- Blockchain Data
- [[Rust]] LDK sample code: https://github.com/lightningdevkit/ldk-sample
## [README](https://github.com/rust-bitcoin/rust-lightning)
LDK/Rust-Lightning is a generic library which allows you to build a lightning node without needing to worry about getting all of the lightning state machine, routing, and on-chain punishment code (and other chain interactions) exactly correct. **Note that Rust-Lightning isn't, in itself, a node. There are various working/in progress demos which could be used as a node today, but if you "just" want a generic lightning node, you're almost certainly better off with `c-lightning`/`lnd` - if, on the other hand, you want to integrate lightning with custom features such as your own chain sync, your own key management, your own data storage/backup logic, etc., LDK is likely your only option.** Some Rust-Lightning utilities such as those in `chan_utils` are also suitable for use in non-LN Bitcoin applications such as DLCs and bulletin boards.