3 ms·
There are a couple of aspects that can make lockfiles deceptive to look at - Lockfiles include dependencies for all platforms, not just the ones you build with
by epage 3y ago
There are a couple of aspects that can make lockfiles deceptive to look at
- Lockfiles include dependencies for all platforms, not just the ones you build with, including wasm and Hermit kernel
- Due to some quirks, lockfiles include more dependencies than will ever be used (related to a feature called "weak dependency features").
For a more accurate picture, look at `cargo tree` and `cargo tree --target=all`.
In this case, a lot of it is that the GitQL SDK depends on gix (gitoxide), a Rust re-implementation of git / libgit, which is made up of a lot of crates and depends on a lot of crates. This dependency should likely not be there and should be fixed. Even with `default-features = false`, gix pulls in a lot. Gix should not be relevant to a more generic SDK.
The other thing that stood out to me as unnecessary is that comfy-tables pulls in cross-term which has way too large of a dependency for what it is doing.
I am surprised at how much `chrono` pulls in but almost all of that is for specific platforms and `chrono` shrinks dramatically when looking only at the native platform.
I do see some stray dependencies that have built-in equivalents (lazy_static -> OnceCell, atty -> IsTerminal). Some of that is due to compatibility with old Rust versions. There were only a couple of these.