Summary
This issue tracks the usage of rust-lightning in no_std environments to help inform decisions about continued no_std support.
Rationale
Supporting no_std adds complexity to the development process. Notable pain points include:
- Time access: No access to system time, requiring alternative approaches
- Send/Sync requirements: Additional constraints on types and trait bounds
A recent example of no_std-related complexity: #4309
Is it worth supporting no_std?
To answer this question, we need visibility into who actually uses rust-lightning in no_std mode.
Methodology
Determining reverse dependencies for no_std specifically isn't straightforward—GitHub's dependency graph doesn't distinguish between feature configurations. I vibe-coded a tool to scan dependents and check their Cargo.toml files for default-features = false without std re-enabled:
https://github.com/joostjager/rust-lightning/tree/ldk-dep-scanner
Note: Not all items in the table below necessarily use no_std in an unavoidable way—some projects may work fine with std enabled but simply haven't changed their configuration.
Direct no_std dependents
The table below shows all direct dependents of rust-lightning that use it in no_std mode, sorted by stars:
Summary
This issue tracks the usage of rust-lightning in
no_stdenvironments to help inform decisions about continuedno_stdsupport.Rationale
Supporting
no_stdadds complexity to the development process. Notable pain points include:A recent example of
no_std-related complexity: #4309Is it worth supporting no_std?
To answer this question, we need visibility into who actually uses rust-lightning in
no_stdmode.Methodology
Determining reverse dependencies for
no_stdspecifically isn't straightforward—GitHub's dependency graph doesn't distinguish between feature configurations. I vibe-coded a tool to scan dependents and check theirCargo.tomlfiles fordefault-features = falsewithoutstdre-enabled:https://github.com/joostjager/rust-lightning/tree/ldk-dep-scanner
Note: Not all items in the table below necessarily use
no_stdin an unavoidable way—some projects may work fine withstdenabled but simply haven't changed their configuration.Direct no_std dependents
The table below shows all direct dependents of rust-lightning that use it in
no_stdmode, sorted by stars: