Introduction to Shuttle
Shuttle is a Rust-native cloud development platform that lets you deploy your app while also taking care of all of your infrastructure.
Get Started
Installation and quickstart guide
Examples
Check out some Shuttle examples
Templates
Get started from one of many templates
Tutorials
Follow one of our tutorials
What is Shuttle?
As a platform designed with a focus on providing an exceptional developer experience, our goal is to make building and deploying applications a breeze. Shuttle’s capabilities make provisioning resources simple and hassle-free. Getting a database is just a matter of asking for one with a macro:
You can hit the ground running and swiftly transform your ideas into tangible solutions. Accelerate your project’s progress by rapidly building and deploying prototypes, ensuring you bring your vision to life in record time.
Our mission is aligned with the wider shift of Rust becoming the future of web development, as we strive to deliver cutting-edge solutions that leverage the full potential of the most loved programming language.
How Shuttle Works
The simplest way to build and deploy a web app on Shuttle looks like this:
This example starts an HTTP server where the GET /
endpoint returns Hello, world!
.
But most importantly, the code you see in the snippet above, is all it takes for shuttle deploy
to deploy it.
This is possible due to the #[shuttle_runtime::main]
procedural macro.
The macro wraps your app with Shuttle’s runtime, which handles resource provisioning and initialization for you.
Supported Frameworks
Many types of Rust programs can be deployed on Shuttle.
Shuttle provides all hosted apps with proxied HTTPS web traffic. Therefore, the most common use case is to deploy web apps and APIs. Any app that can bind to a socket and accept incoming HTTP traffic can run on Shuttle.
To make life easier we have implemented all the boilerplate required for these Rust web frameworks. Get started with just a few lines of code.
The Discord Bot building frameworks Serenity and Poise are also officially supported.
If you need a custom service, you can take a look at our guide right here.
Resource Provisioning
One of the great features of Shuttle is the provisioning of resources through macros. With just a few lines of code, you can get access to various resources. Here are some examples:
Secrets
Postgres Database
For more info on resources, head on over to our Resources section.
Deployment Process
When you run shuttle deploy
, your project code is archived and sent to our platform where it is built into a Docker image.
Your service will then be started on Shuttle’s infrastructure on AWS in London (eu-west-2).
The generated code from shuttle_runtime::main
handles resource provisioning and initialization, leaving you to focus on what matters.