entrenar/storage/cloud/mod.rs
1//! Cloud Storage Backends (#72)
2//!
3//! Artifact storage abstraction supporting local, S3, Azure, and GCS backends.
4//!
5//! # Toyota Principle: Heijunka (平準化)
6//!
7//! Level workloads across storage tiers - artifacts are stored content-addressably
8//! to enable efficient caching and deduplication across storage backends.
9//!
10//! # Example
11//!
12//! ```
13//! use entrenar::storage::cloud::{ArtifactBackend, LocalBackend};
14//! use std::path::PathBuf;
15//!
16//! fn example() -> Result<(), Box<dyn std::error::Error>> {
17//! let backend = LocalBackend::new(PathBuf::from("/tmp/artifacts"));
18//! let hash = backend.put("model.safetensors", b"test data")?;
19//! let data = backend.get(&hash)?;
20//! Ok(())
21//! }
22//! ```
23
24mod azure;
25mod config;
26mod error;
27mod gcs;
28mod local;
29mod memory;
30mod metadata;
31mod s3;
32mod traits;
33
34// Re-export all public types for API compatibility
35pub use azure::AzureConfig;
36pub use config::BackendConfig;
37pub use error::{CloudError, Result};
38pub use gcs::GCSConfig;
39pub use local::LocalBackend;
40pub use memory::InMemoryBackend;
41pub use metadata::ArtifactMetadata;
42pub use s3::{MockS3Backend, S3Config};
43pub use traits::{compute_hash, ArtifactBackend};