sulfite

Crates.iosulfite
lib.rssulfite
version0.0.3
sourcesrc
created_at2024-11-06 19:27:03.16568
updated_at2024-11-21 14:52:39.231799
descriptionA high-level S3 client built on AWS SDK for Rust for bandwidth saturation
homepagehttps://github.com/clearviewai/sulfite
repositoryhttps://github.com/clearviewai/sulfite
max_upload_size
id1438707
size47,418
Terence Z. Liu (terencezl)

documentation

README

sulfite

Crates.io Docs.rs License

Overview

sulfite is a high-level S3 client built on AWS SDK for Rust for even better ease of use, reliability, and bandwidth saturation (>50 Gbps).

The name: SO3^2-, an anion, implying a companion to some other cation (application), is commonly used as a preservative in wines and dried fruits (preserve to S3). It's S3 with an O in the middle, a play on oxidization.

Motivation

The AWS SDK is a little low-level for users to take advantage of the concurrency & parallelism, with the following challenges:

  1. You need to orchestrate the parallel multipart download & upload for large files.
  2. The built-in retry settings are too low-level, and we allow installing higher-level retries.
  3. The async API doesn't agree well with the filesystem, especially for streaming small chunks from/to disk.

To address them, we provide implementations for the parallel multipart download & upload, and higher-level retries. We also make sure the on-disk file is adequately buffered to avoid task-threading overhead.

License

This project is licensed under the MIT license.

Commit count: 9

cargo fmt