s3s
S3 Service Adapter
crate | version | docs |
---|---|---|
s3s | ||
s3s-fs |
This experimental project intends to offer an ergonomic adapter for building S3-compatible services.
s3s
implements Amazon S3 REST API in the form of a generic hyper service. S3-compatible services can focus on the S3 API itself and don't have to care about the HTTP layer.
s3s-fs
implements the S3 API based on file system, as a sample implementation. It is designed for integration testing. DO NOT USE IT IN PRODUCTION.
How it works
The diagram above shows how s3s
works.
s3s
converts HTTP requests to operation inputs before calling the user-defined service.
s3s
converts operation outputs or errors to HTTP responses after calling the user-defined service.
The data types, serialization and deserialization are generated from the smithy model in aws-sdk-rust repository, with some manual hacks.
Develop
Toolchain
- Rust 1.66.1 or newer
- just
Get the source code
Run basic checks and tests
Play the test server
Install s3s-fs
Run s3s-fs
with example configuration
Access Key: AKEXAMPLES3S
Secret Key: SKEXAMPLES3S
Then you can explore it with your favorite S3 client!
Run the codegen
It should change nothing if you are running the latest code.