←back to thread

171 points g0xA52A2A | 2 comments | | HN request time: 0s | source
Show context
Vogtinator ◴[] No.41869463[source]
Cargo.lock has 8750 lines. Is that normal for something like this?

For comparison, QEMU basically just needs glibc, glib and zlib for basic functionality.

replies(3): >>41869582 #>>41869918 #>>41870617 #
1. orangeboats ◴[] No.41869582[source]
Looking at Cargo.toml, a great deal of the project's dependencies are internal dependencies. Those are located in the same repo, and the separation is only there to help keep the compile times manageable by allowing parallel compilation.

It's very rare to see so many internal dependencies in one project, but the concept itself is well explored.

But besides that, it's just the project making use of the Rust ecosystem instead of rolling everything by themselves. From what I can see most of these external dependencies are already established in the ecosystem (some crates I am not sure since I've never used them, but anyhow, http, hyper etc. are among the most popular crates).

replies(1): >>41869885 #
2. dicytea ◴[] No.41869885[source]
> the separation is only there to help keep the compile times manageable

I don't think that's the reason, at least not the only reason. Workspaces is just a nice and modular way to organize a big project and separate concerns.