-
Notifications
You must be signed in to change notification settings - Fork 17
Description
I was looking at using this crate as a part of a larger project, but noticed that the dependency list is more than a little absurd. to the point that I don't really feel comfortable trusting that many third party developers with the money of people who might use my software. Obviously dependencies are not, in principle, a bad thing, and save lots of time, but dependencies where the project is almost exclusively built by a single third party with limited review is just an opportunity for that third-party (or a threat actor who compromises the computer/Github account of that third party) to steal the money of everyone who uses breez-sdk-spark.
Just scrolling through the list of breez-sdk-spark dependencies from top to bottom, there's lots of crates that look like they get limited if any outside contribution, things like dotenvy, ecies (which is a trivial algorithm you can write yourself!), nostr, qrcode-rs, shellwords, tokio-with-wasm (which certainly doesn't need to be built for non-wasm targets!), web-time (you can just use std time when building with wasm-pack!), x509-parser, and base32 (come on, just copy the code...) probably all don't make sense in a Bitcoin wallet, and that's not even looking at recursive dependencies or other sub-crates here.
While cleaning these up all at once may be a chunk of work (or may not be, depending on how these are used!), making progress on this over time while restricting new dependencies is almost certainly a good idea.