Crate remi

source ·
Expand description

§🐻‍❄️🧶 Remi (Rust Edition)

Robust, and simple asynchronous Rust crate to handle storage-related communications with different storage providers.

v0.7.1 | :scroll: Documentation

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.



  • 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


  • Represents a directory that was located somewhere.
  • Representation of a Blob that is a file.
  • Represents the request options for querying blobs from a storage service.
  • Represents a request object that allows users who interact with the storage service API to create objects with a Bytes container.


  • Represents a file or directory from any storage service.


  • A storage service is a base primitive of remi-rs: it is the way to interact with the storage providers in ways that you would commonly use files: open, deleting, listing, etc.