Contributions are welcome and encouraged! Whether you're fixing bugs, adding features, improving documentation, or helping with testing, we appreciate your help!
cargo build # Build all crates
cargo build --release # Production build (LTO enabled)cargo run --bin ldk-server ./contrib/ldk-server-config.tomlcargo test # Run all tests
cargo test --all-features # Run tests with all featurescargo fmt --all # Format code
cargo fmt --all -- --check # Check formatting
cargo clippy --all-features -- -D warnings -A clippy::drop_non_drop # Lint (CI uses this on MSRV)- MSRV: Rust 1.85.0
- Hard tabs, max width 100 chars
- Imports grouped: std, external crates, local crates
RUSTFLAGS="--cfg genproto" cargo build -p ldk-server-grpc
cargo fmt --all- Define request/response messages in
ldk-server-grpc/src/proto/api.proto - Regenerate protos (see above)
- Create handler in
ldk-server/src/api/(follow existing patterns) - Add route in
ldk-server/src/service.rs - Add CLI command in
ldk-server-cli/src/main.rs
- Config template with all options:
contrib/ldk-server-config.toml - When updating config options, also update the tests in
ldk-server/src/util/config.rs
- Ensure all tests pass
- Ensure all lints are fixed
- Run
cargo fmt --all - Please disclose the use of any AI tools in commit messages and PR descriptions