Bring your code, we'll handle the rest.
Six promises from the Shuttle homepage: Rust made simple, Vercel for Backends, no vendor lock-in, a database just by asking for one, cached builds for fast redeploys, and Rust everywhere.
init, run, deploy, logs, secrets, resource. The whole lifecycle of a Rust backend, from one CLI installed with cargo.
Rust, made simple.
Shuttle makes it easy to connect to databases, has out-of-the-box logging support, abundant documentation and supports all major Rust frameworks. Yes, even if you are coming from JS.
How Shuttle works, in four steps.
Take any Rust service, add a single annotation to main, and the platform packages it, compiles it and wires up the resources your code asks for ↓
3. Add more annotations to control cloud resources. Databases, secrets or storage are as easy as adding arguments to a function.
2. Your code is packaged and sent to Shuttle, where it is compiled and deployed. After a few seconds, the app is running in the cloud.
1. Take any Rust service code and have it ready for deployment by adding a single annotation to your main function.
Infrastructure from Code.
Provisioning resources straight from your code instead of complex consoles and YAML files. Getting a Postgres database is a matter of asking for one with a macro, and an authenticated connection pool comes back.
Build & ship a backend without writing any infrastructure files.
Shuttle gets your infrastructure definitions from your code: function signatures and annotations. One macro wraps main, and a database is just another argument.






