Skip to content

Reduce dependencies #497

@TheBlueMatt

Description

@TheBlueMatt

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.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions