Get started in seconds
Build an app with your favourite Rust framework and deploy it immediately. We’ll take care of all the infrastructure.
$ cargo shuttle help
Usage: cargo-shuttle [OPTIONS] <COMMAND>
Commands:
init Create a new Shuttle project
run Run a Shuttle service locally
deploy Deploy a Shuttle service
deployment Manage deployments of a Shuttle service
status View the status of a Shuttle service
stop Stop this Shuttle service
logs View the logs of a deployment
project List or manage projects on Shuttle
resource Manage resources of a Shuttle project
secrets Manage secrets for this Shuttle service
clean Remove cargo build artifacts
login Login to the Shuttle platform
logout Log out of the Shuttle platform
generate Generate shell completions
feedback Open an issue on GitHub and provide feedback
help Print this message
01 Install
Install the CLI
02 Initialize
Bootstrap your project
03 Deploy
Take-off in 3, 2, 1..
Bring your code, we'll handle the rest
Leave the deployment to us and focus on what matters, writing good code.
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.
Vercel for Backends
Get an entire infrastructure configured without writing any infrastructure config.
No Vendor lock-in
No need to have your app hosted on our servers, you can deploy it to your own cloud or even run shuttle in your garage.
Everything is Rust, Rust is everything
Get a database by just asking for one in your Rust code.
Build fast, redeploy instantly
Shuttle always uses the cache from previous builds to give you lightning-speed redeploys.
Forever-free tier
Unlimited access to essential features, no strings attached.
Starters
Set up and deploy a quick starter, in minutes, with detailed instructions on how it works.
How it works
With Shuttle you can take any Rust service code, and have it ready for deployment by adding a single annotation to your main function.
Your code is packaged and sent to Shuttle where it is compiled and deployed. After a few seconds, your app is already running in the cloud.
You can then add more annotations that control cloud resources. Adding components like databases, secrets or storage is as easy as adding arguments to a function.
The next time you deploy your app, Shuttle provisions and configures the resources you need. In minutes, you can build complex and scalable apps on industry-standard AWS products and never have to touch the AWS console.
1use rocket::{get, routes};
2
3#[get("/")]
4fn index() -> &'static str {
5 "Hello, world!"
6}
7
8#[shuttle_runtime::main]
9async fn main() -> shuttle_rocket::ShuttleRocket {
10 let rocket = rocket::build().mount("/", routes![index]);
11
12 Ok(rocket.into())
13}
What the community says
Join thousands of developers using Shuttle. Connect with them on Discord.
Dominykas
@chaosteil
Staff Software Engineer @ Uber
Game changer, what a great project.
Matthias Endler
@mathiasendler
Rust Consultant @ Corrode
Deployed my second service with Shuttle and I really like it! It's fast and integrates well with cargo, so I can focus on the Rust code instead of the deployment. Well done!
Peter Mertz
@mertzalertz
Lead Engineer @ Zed Financial
Shuttle is hands down the best way to deploy a rust app quickly, safely, with the ability to scale. It has a variety of frameworks supported, and the community surrounding it is incredible. Heroku for Rust but better!
Stefan Baumgartner
@ddprrt
Owner oida.dev | Architect @ Dynatrace | Rust Linz
You soon realize Shuttle is much more than just a host for your app. It's your Rust framework for the cloud; Infrastructure as Crates! This puts Shuttle in front of everything else I've tried. I couldn't be more happy!
Roberto Huertas
@robertohuertasm
Software Engineer @ Datadog
Mind-blowing! What a huge addition to the Rust ecosystem! I'm sure this will be a driveway to get more people into Rust.
Glen De Cauwsemaecker
@glendc
Founder @ Plabayo
Shuttle turns shipping web services into child play. The full power of the Rust ecosystem together with zero effort deployments and no infrastructure work allows us to hit market as quickly as we can develop the product. Magic!
FAQ
Your code is analyzed and built on our servers. The first time you introduce additional resources in your code, like the first time you use a database, we will add that resource to your project and wire it automatically to your deployment.
We believe Rust is the language of the future because of the safety guarantees Rust provides and the efficiency of running Rust code. Also, with Rust you build once and everything just works - saving you tons of time on maintenance. And Shuttle makes the experience of building your backend with Rust better than anything you can find for any other language.
Of course! When you deploy a project on Shuttle, your API becomes available at a URL of the form ${project_name}.Shuttleapp.rs. And since Shuttle is compatible with any of the common frontend hosting solutions (Vercel, Netlify, etc), you just have to make your API calls to the URL of your project, and you’re up. Soon you’ll also be able to use Shuttle to deliver static content at the edge and host your preact or Next.js projects with the rest of your code on Shuttle.
Absolutely. As a matter of fact, Shuttle makes sure that whatever you see in a local development environment works in exactly the same way when it gets deployed to our cloud. This includes all the resources you could end up needing, like databases and secrets for example.
We are putting a lot of effort into developing a WASM runner that plays well with other parts of a Shuttle project. We are very impressed by what we’re seeing so far in terms of improved build times and faster (we’re taking milliseconds…) deploy times. We’re expecting to roll out stable support for WASM services shortly.
You can bring your lambda code to Shuttle as is. And we run it on dedicated infrastructure that keeps the state of your services across requests, has no cold-start and can even have long-running threads, all of which is not possible on AWS Lambda.