Re:Synchronous Messaging at Mozilla: The Decision
by Coding_Cat on Thursday December 19, 2019 @03:13PM
(#21838763)
For rust it's sometimes useful to split it like that, because it makes it easy to publish small subsets of your project on cargo. Say you develop a custom datastructure, or an extension on Streams.
The same applies to other languages to some degree, but crates/cargo just makes it very painless to grab crates that are on a seperate git.
Re:Synchronous Messaging at Mozilla: The Decision
by jeltz on Thursday December 19, 2019 @03:20PM
(#21838827)
But Cargo supports having multiple crates in the same git repo. Many projects do this like regex (regex and regex-syntax are in the same repo) and openssl (openssl, openssl-sys, openssl-errors). Maybe I am missing something but it seems very easy to handle multiple closely related crates in the same repo.
Re:Synchronous Messaging at Mozilla: The Decision
by kibwen on Thursday December 19, 2019 @03:43PM
(#21839047)
What makes this possible is Cargo's "workspace" feature, which is relatively new enough that it's not hard to imagine that some older projects may simply predate it.
Re:Synchronous Messaging at Mozilla: The Decision
by mcny on Thursday December 19, 2019 @10:19PM
(#21841490)
Would something like git subtree help here? Allow people to continue working with their individual repos but present a unified view for outsiders to follow along? We could automate this, right?
Re:Synchronous Messaging at Mozilla: The Decision
by jeltz on Friday December 20, 2019 @08:34AM
(#21843974)
Hm, I have been doing this just fine without using the workspaces. What am I missing?
Re:Synchronous Messaging at Mozilla: The Decision
by exrook on Friday December 20, 2019 @09:17AM
(#21844250)
Cargo workspaces are more of an optimization in that they let all the crates in your project share the same output directory[0], so built dependencies can be shared among every crate, as opposed to each crate needing to (re)build all of its dependencies independently.
This helps to reduce compile times when working on projects where you frequently switch between crates.
[0] https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
It is a bit hard to follow their project since they have split it up in so many tiny repos. I personally prefer when a set of closely related crates are developed in one mono repo.