The next sections go over one by one 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:
- receive a database by writing a simple annotation
- enables quick prototyping, there is no need for extensive setup, management consoles/tools, etc.
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.
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.
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.
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.
The Shuttle Secrets plugin provides a place to store variables which are sensitive and cannot be committed into version control.
To check which resources are linked to your project, use
cargo shuttle resource list
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.