https://github.com/koverstreet/bcachefs-tools/blob/b422b19f6...
https://github.com/koverstreet/bcachefs-tools/blob/b422b19f6...
[0]:https://github.com/gentoo/gentoo/blob/master/sys-fs/bcachefs...
If the comparison is with C/C++ then the comparison is flawed:
- some you would never see in C/C++ because there's no point to them (e.g. safe bindings to system libraries)
- some are the same dependency but split in multiple crates to improve compile times (e.g. `anstyle`, `clap` and `regex`)
- some in C/C++ would just be vendored due to the difficulty of package management (see for example [0])
> This for some reason includes stuff like "winapi-i686-pc-windows-gnu" which really has no place for a set of linux software tools.
I don't know how Gentoo's build system works, but Cargo resolves the versions for *all dependencies*, including those that are conditionally compiled (e.g. based on the target OS). This is because the `Cargo.lock` file, which contains the actual dependencies versions used, is supposed to be versioned in e.g. git, and thus needs to be cross platform and be the same for everyone compiling the crate.
[0]:https://wiki.alopex.li/LetsBeRealAboutDependencies#gotta-go-...
Now, there is the separate concern of cargo-vendor downloading the winapi crate, which it does, also on Linux. It doesn't have to because winapi is never built, yet it still does it. That one I agree is a bit wasteful, but it's a known issue.
Most C Debian packages have a few dependencies in my experience, they are just “standard”, because they are old and stable.
Then in principle, we could curate a set of useful Rust crates, treat the set as a single dependency, and be on the same page as C++ with Boost.
It doesn't require anything. You can write those things yourself if you want. And for some critical things you should.
But given the tiny number of languages with logging, uuids, and error reporting built in... what are you taking about? They're doing just fine.
This is a result of every Linux distros' self-centred requirement for the entire world to be packaged by them, and a refusal to accept vendoring.
Python has exactly the same problem. You can't even `pip install` on Debian any more because they insist on copying a random selection of Python packages into Apt and they can conflict.
And, they insist on not including venv by default, which IMO seems like a tiny little "fuck you" to users.