Shuttle supports cargo workspaces. Simply run the project and deployment commands in the root of the workspace, and the project name will be taken from the directory name of the workspace or a Shuttle.toml with a name key in the root of the workspace. See Project Name for more info.

Caveats

We currently only support one Shuttle service per workspace, so you can have many crates in a workspace, but only one crate with a shuttle_runtime::main macro. We intend to allow starting several Shuttle services at the same time, as part of the same project. The long term plan is to have one central service that routes to the other services in the project, sharing resources amongst them. Any feedback on what you would like to see in this area is most welcome.