Skip to main content

oximedia_cloud/
lib.rs

1#![allow(
2    clippy::cast_possible_truncation,
3    clippy::cast_possible_wrap,
4    clippy::cast_precision_loss,
5    clippy::cast_sign_loss,
6    clippy::missing_errors_doc,
7    clippy::must_use_candidate,
8    clippy::option_if_let_else,
9    clippy::pedantic,
10    clippy::unused_self
11)]
12
13//! # Oximedia Cloud Platform Integration
14//!
15//! Comprehensive cloud storage and media services integration for AWS, Azure, and GCP.
16//!
17//! ## Features
18//!
19//! - Multi-cloud storage abstraction (S3, Azure Blob, GCS)
20//! - Media processing service integration
21//! - Transfer management with retry and resume
22//! - Cost optimization strategies
23//! - Security and encryption
24//! - Advanced features like failover, replication, archival
25//!
26//! ## Example
27//!
28//! ```no_run
29//! use oximedia_cloud::{CloudProvider, CloudStorage, create_storage};
30//! use bytes::Bytes;
31//!
32//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
33//! let provider = CloudProvider::S3 {
34//!     bucket: "my-bucket".to_string(),
35//!     region: "us-east-1".to_string(),
36//! };
37//!
38//! let storage = create_storage(provider).await?;
39//! storage.upload("test.mp4", Bytes::from("data")).await?;
40//! # Ok(())
41//! # }
42//! ```
43
44#![forbid(unsafe_code)]
45
46pub mod auto_scaling;
47pub mod aws;
48pub mod azure;
49/// Cloud transfer bandwidth throttling and scheduling.
50pub mod bandwidth_throttle;
51pub mod cdn;
52pub mod cdn_config;
53pub mod cdn_edge;
54pub mod cloud_auth;
55/// Cloud backup strategies: incremental, differential, and versioned backups.
56pub mod cloud_backup;
57pub mod cloud_credentials;
58pub mod cloud_job;
59/// Object lifecycle management: tier transitions, expiration, and archival rules.
60pub mod cloud_lifecycle;
61pub mod cloud_monitor;
62pub mod cloud_queue;
63pub mod cost;
64pub mod cost_model;
65pub mod cost_monitor;
66pub mod egress_policy;
67pub mod error;
68pub mod event_bridge;
69pub mod gcp;
70pub mod generic;
71pub mod multicloud;
72pub mod multiregion;
73pub mod object_store;
74pub mod provider;
75pub mod region_selector;
76pub mod replication_policy;
77pub mod security;
78pub mod storage;
79pub mod storage_class;
80pub mod storage_provider;
81pub mod task_queue;
82pub mod transcoding;
83pub mod transcoding_pipeline;
84pub mod transfer;
85pub mod types;
86pub mod upload_manager;
87
88pub use error::{CloudError, Result};
89pub use provider::{create_storage, CloudProvider};
90pub use types::{
91    CloudStorage, ObjectInfo, ObjectMetadata, StorageClass, TransferProgress, UploadOptions,
92};
93
94// Re-export commonly used types
95pub use aws::{AwsMediaServices, S3Storage};
96pub use azure::{AzureBlobStorage, AzureMediaServices};
97pub use cost::{CostEstimator, StorageTier};
98pub use gcp::{GcpMediaServices, GcsStorage};
99pub use generic::GenericStorage;
100pub use security::{Credentials, EncryptionConfig, KmsConfig};
101pub use transfer::{TransferConfig, TransferManager};