HTTP microservice that exposes genro-storage capabilities via REST API.
genro-storage-proxy is a standalone FastAPI service that acts as a storage aggregator for microservice architectures. Instead of each microservice integrating storage libraries and managing configuration, services communicate with genro-storage-proxy via HTTP.
┌─────────────────────────────────────────┐
│ genro-storage-proxy │
│ - Single storage configuration │
│ - Mounts: S3, GCS, Azure, local │
│ - HTTP REST API │
│ - Multi-tenant support │
└─────────────────────────────────────────┘
↑ ↑ ↑
HTTP │ HTTP │ HTTP │
┌─────┴───┐ ┌───┴────┐ ┌──┴─────┐
│ mail- │ │ image- │ │ video- │
│ proxy │ │ proc │ │ proc │
│ (Python)│ │ (Go) │ │ (Rust) │
└─────────┘ └────────┘ └────────┘
- Polyglot Architecture: Any language can use storage via HTTP
- Centralized Configuration: Single source of truth for storage mounts
- Backend Transparency: Switch S3→GCS without touching microservices
- Separation of Concerns: Storage logic isolated in one service
- Multi-tenant Ready: Per-tenant storage isolation
GET /files/{mount}:{path} - Download file
PUT /files/{mount}:{path} - Upload file
DELETE /files/{mount}:{path} - Delete file
POST /files/{mount}:{path}/copy - Copy file
GET /files/{mount}:{path}/metadata - Get metadata
GET /mounts - List mounts
POST /mounts - Add mount dynamically
PUT /mounts/{name} - Update mount
DELETE /mounts/{name} - Remove mount
🚧 Planning Phase - Not yet implemented
This is a placeholder repository for future development. See docs/CONCEPT.md for detailed planning.
- genro-storage - Core storage library (required dependency)
- genro-mail-proxy - Potential consumer
MIT