Expand description
§s3-proxy-core
Runtime-agnostic core library for the S3 proxy gateway.
This crate defines the trait abstractions that allow the proxy to run on multiple runtimes (Tokio/Hyper for containers, Cloudflare Workers for edge) without either runtime leaking into the core logic.
§Key Abstractions
route_handler::ProxyResponseBody— concrete response body type (Stream, Bytes, Empty)backend::ProxyBackend— create object stores and send raw HTTP requestsregistry::BucketRegistry— bucket lookup, authorization, and listingregistry::CredentialRegistry— credential and role storageauth— SigV4 request verification and credential resolutionapi::request— parse incoming S3 API requests into typed operationsapi::response— serialize S3 XML responsesroute_handler::RouteHandler— pluggable pre-dispatch request interception (OIDC, STS, etc.)middleware::Middleware— composable post-auth middleware for dispatchbackend::ForwardResponse— response type for backend forwarding (method onbackend::ProxyBackend)router::Router— path-based route matching viamatchitfor efficient dispatchproxy::ProxyGateway— the main request handler that ties everything together
Modules§
- api
- S3 API parsing and response serialization.
- auth
- Authentication and authorization.
- backend
- Backend abstraction for proxying requests to backing object stores.
- error
- Error types for the proxy.
- maybe_
send - Conditional
Send/Syncbounds for traits whose wasm implementations use!Sendtypes (JS interop viaRc<RefCell<...>>,JsValue, etc.). - middleware
- Composable post-auth middleware for dispatch.
- proxy
- The main proxy gateway that ties together registry lookup and backend forwarding.
- registry
- Registry abstractions for bucket policy and credential storage.
- route_
handler - Pluggable route handler trait for pre-dispatch request interception.
- router
- Path-based request router.
- types
- Shared types used across the proxy.