Robust, and simple asynchronous Rust crate to handle storage-related communications with different storage providers.
remi-rs is a Rust port of Noelware's Java-based Remi for the Rust programming language. It provides a easy way to implement storage-related communications with different storage providers like Amazon S3, Google Cloud Storage, Azure Blob Storage, and more.
Noelware has ported the Java-based Remi libraries since we use Kotlin and Rust heavily in our products and services, so it made sense to have both support for Remi in Java and Rust.
Note
As of the v0.5 release, remi-rs
will be our main priority. Java version is no longer maintained by the Noelware team.
Warning
These crates are highly experimental and shouldn't be used in production environments yet as they are still v0. While these crates are in our products, it is for testing them and see how they do in our environments.
remi-rs is somewhat experimental, the only Remi crate that is finalized is the local filesystem and Amazon S3, as that is more tested within Noelware's Rust applications.
- Azure Blob Storage (with the
remi-azure
crate) - Local Filesystem (with the
remi-fs
crate) - MongoDB GridFS (with the
remi-gridfs
crate) - Amazon S3 (with the
remi-s3
crate)
- Oracle Cloud Infrastructure Object Storage: Use the
remi-s3
crate instead as it supported a S3-compatible API. - Digital Ocean Spaces: You can use the S3 storage service since it has a S3-compatible API
- Google Cloud Storage: Plan to do it soon when there is an officially maintained Google Cloud SDK that is reliable or a community-maintained version can be present if wished.
- Alibaba Cloud OSS Storage
- Tencent Cloud COS Storage
- OpenStack Object Storage
- Baidu Cloud BOS Storage
- Netease Cloud NOS Storage
You can create your own community crate with the remi
crate.
As this library is asynchronously only, you will need to configure an async runtime! Us at Noelware use Tokio, but using async-std
is experimental and things might break.
The main crate (remi
) since v0.5.0 and above cleans up the code from remi-core
and is migrated to that library instead to make more sense out of it, essentially, remi-core
has been decommissioned since the v0.5 release.
Examples for each crate can be ran with cargo run --package [crate-name] --example [example-name]
and will live in crates/{crate-name}/examples
.
remi-rs is released under the MIT License with love by Noelware. :3