multistore
Runtime-agnostic core library for the multistore S3 proxy gateway. Contains all business logic — S3 request parsing, SigV4 signing/verification, authorization, and the proxy handler — without depending on any async runtime.
Why This Crate Exists Separately
The proxy runs on fundamentally different runtimes: Tokio/Hyper in containers and Cloudflare Workers on the edge. These have incompatible stream types, HTTP primitives, and threading models. Keeping the core runtime-free lets it compile to both native and wasm32-unknown-unknown.
Key Abstractions
ProxyBackend— runtime-specific HTTP client for forwarding requests, creating object stores, and signing URLsBucketRegistry— identity-aware bucket resolution and authorization (seemultistore-static-configfor a file-based implementation)CredentialRegistry— credential and role lookup for SigV4 verification and STS (seemultistore-static-config)Middleware— composable post-auth request processing (seemultistore-oidc-provider,multistore-metering)
Usage
use ProxyGateway;
use StaticProvider;
let backend = new;
let config = from_file?;
let gateway = new;
match gateway.handle_request.await
Feature Flags
azure— Azure Blob Storage backend supportgcp— Google Cloud Storage backend support