Previously, in each of our fuzz tests we had a dummy test which had a hard-coded hex string which it passed into the fuzz target so that when a failing test case was found, its hex could be copied into the test and you could run cargo test to analyze the failure. However, this was somewhat unwieldy as converting large tests back and forth between hex and raw files is quite annoying. Instead, we replace each of those tests with a test in each target that looks for files in fuzz/test_cases and runs each file it finds. Since we're editing every bin target anyway, we also automate adding no_main to libfuzzer builds with #![cfg_attr]. |
||
---|---|---|
fuzz | ||
lightning | ||
lightning-net-tokio | ||
.editorconfig | ||
.gitignore | ||
.travis.yml | ||
Cargo.toml | ||
LICENSE | ||
README.md |
Rust-Lightning, not Rusty's Lightning!
Documentation can be found at docs.rs
Currently somewhere near 50% towards usable, published to see if there is any real interest from folks in using a lightning rust library.
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.
Notes on coding style:
- Use tabs. If you want to align lines, use spaces. Any desired alignment should display fine at any tab-length display setting.
License is Apache-2.0.