This section covers the resources currently supported by Shuttle. In broad terms, for the resource needed, simply mark up your code with the appropriate annotation. This is very powerful and brings several benefits:

  • simplicity
  • receive a database by writing a simple annotation
  • enables quick prototyping, there is no need for extensive setup, management consoles/tools, etc.

Resources

Amazon Web Services Relational Database Service (AWS RDS)

This plugin allows applications to leverage AWS RDS for database needs, instead of a shared database. This will result in improved availability and reliability given the “managed” nature of the service and its increased resources. It can be a good choice if the database backing the application requires the performance increase that results from improved isolation.

Shared Databases

The Shared Databases plugin can give you your own Postgres or MongoDB database inside an instance which is shared with other users. This is the option to choose if total database isolation isn’t a concern. It’s great starting point for prototyping applications on Shuttle.

Persist

This plugin allows data that implements serde serialization and deserialization to be saved in files in a key-value store fashion. It is useful for saving data that is not desirable to be hard coded. An example is saved settings for a Discord bot that need to remain the same between updates.

Turso

This plugin allows services to connect to a Turso database. Turso is an edge-hosted distributed database based on libSQL, which is a fork of SQLite.

Secrets

The Shuttle Secrets plugin provides a place to store variables which are sensitive and cannot be committed into version control.

Commands

To check which resources are linked to your project, use

cargo shuttle resource list

Deleting resources

You can delete database resources with

cargo shuttle resource delete [TYPE]

To know what to put in the TYPE parameter, use the list command above.