8 breaking releases

0.46.0 Jun 13, 2024
0.44.0 Apr 23, 2024
0.42.0 Mar 18, 2024

#3 in #opendal

Download history 36/week @ 2024-02-26 271/week @ 2024-03-04 230/week @ 2024-03-11 112/week @ 2024-03-18 127/week @ 2024-04-01 3/week @ 2024-04-08 129/week @ 2024-04-22 29/week @ 2024-05-06 126/week @ 2024-05-13 6/week @ 2024-05-20 8/week @ 2024-05-27 128/week @ 2024-06-10

146 downloads per month


471 lines

Shuttle OpenDAL

This plugin allows services to connect to Apache OpenDAL™. OpenDAL is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way.

Users can connect OpenDAL to access data from a variety of storage services, including: s3, azblob, gcs, oss and so on.


IMPORTANT: Currently Shuttle isn't able to provision a storage for you (yet). This means you will have to create the storage service first and setup the secrets accordingly.

Add shuttle-opendal to the dependencies for your service by running cargo add shuttle-opendal. This resource will be provided by adding the shuttle_opendal::Opendal attribute to your Shuttle main decorated function.

It returns a opendal::Operator for you to connect the storage service.


In the case of an Axum server, your main function will look like this:

use opendal::Operator;
use shuttle_axum::ShuttleAxum;

async fn app(
    #[shuttle_opendal::Opendal(scheme = "s3")]
    storage: Operator,
) -> ShuttleAxum {}


Parameter Type Default Description
scheme str "memory" The scheme of the storage service to connect to.

All secrets are loaded from your Secrets.toml file.

For instance, when using s3, you can configure the scheme to s3 and specify the secrets: bucket, access_key_id, and secret_access_key.

Visit the OpenDAL Documentation for more information on how to setup the secrets for the storage service you want to connect to.


~410K SLoC