DEV Community

Discussion on: Make a Combined Library and Binary Project in Rust

Collapse
 
thawkins profile image
Tim Hawkins

How would you go about creating a project with multiple libraries and binaries that all share the libraries.

Collapse
 
griffigh profile image
griffi-gh

Cargo workspaces.

Collapse
 
yjdoc2 profile image
YJDoc2

Hey, the exact structure would depend on what is your project, and how it grows, but in starting you can create a single root folder of your main binary and then create subfolders for each library with their own cargo.toml and src files. For example, check out github.com/containers/youki
In its root, it has its main binary , and in folder oci_spec , it has a library. For using that as dependency in root cargo toml, its path is given as part of dependency (check the repo to see what I'm trying to say 😅)

I haven't worked on a project which made multiple binaries in a single project, so can't help you there, but for multiple binaries using multiple local libs, you can create individual folders for each of them and then add them as dependencies as needed.

Hope this helps you 🙂

Collapse
 
nsrcodes profile image
Navdeep Singh Rathore

The project you mentioned now uses workspaces. I don't completely understand how they are used but here is the corresponding chapter from "the book" - doc.rust-lang.org/book/ch14-03-car...

Collapse
 
thawkins profile image
Tim Hawkins

Thanks, I'm still learning rust, but this is useful.