rust-lightning/README.md

52 lines
2.4 KiB
Markdown
Raw Normal View History

2019-07-24 07:51:11 +02:00
[![Safety Dance](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance/)
2017-12-25 07:05:27 +01:00
Rust-Lightning, not Rusty's Lightning!
2019-03-25 23:03:06 +01:00
=====
2017-12-25 07:05:27 +01:00
2019-03-25 23:03:06 +01:00
Documentation can be found at [docs.rs](https://docs.rs/lightning/)
2020-02-07 22:34:23 +01:00
The project implements all of the BOLT specifications in the 1.0 spec except
for [channel queries](https://github.com/lightningnetwork/lightning-rfc/blob/master/07-routing-gossip.md#query-messages). The
implementation has pretty good test coverage that is expected to continue to
2020-02-07 22:34:23 +01:00
improve. There are a number of internal refactorings being done now that will
make the code base more welcoming to new contributors. It is also anticipated
that as developers begin using the API, the lessons from that will result in
2020-02-10 04:08:35 +01:00
changes to the API, so any developer using this API at this stage should be prepared
2020-02-07 22:34:23 +01:00
to embrace that. The current state is sufficient for a developer or project to
experiment with it. Recent increased contribution rate to the project is expected
to lead to a high quality, stable, production-worthy implementation in 2020.
2017-12-25 07:05:27 +01:00
2020-02-12 19:31:37 +01:00
Communications for Rust-Lightning and Lightning Development Kit happens through
[LDK slack](http://lightningdevkit.org/).
Design Goal
-----------
2017-12-25 07:05:27 +01:00
The goal is to provide a full-featured but also incredibly flexible lightning
implementation, allowing the user to decide how they wish to use it. With that
in mind, everything should be exposed via simple, composable APIs. The user
should be able to decide whether they wish to use their own threading/execution
models, allowing usage inside of existing library architectures, or allow us to
handle that for them. Same goes with network connections - if the user wishes
to use their own networking stack, they should be able to do so! This all means
that we should provide simple external interfaces which allow the user to drive
all execution, while implementing sample execution drivers that create a
full-featured lightning daemon by default.
For security reasons, do not add new dependencies. Really do not add new
non-optional/non-test/non-library dependencies. Really really do not add
dependencies with dependencies. Do convince Andrew to cut down dependency usage
in rust-bitcoin.
2020-02-12 19:31:37 +01:00
Contributing
------------
Contributors are warmly welcome, see [CONTRIBUTING.md](CONTRIBUTING.md).
Project Architecture
---------------------
2020-03-21 04:13:37 +01:00
For a Rust-Lightning high-level API introduction, see [ARCH.md](ARCH.md).
2017-12-25 07:05:27 +01:00
2018-03-05 21:08:43 +01:00
License is Apache-2.0.