mod cold_start;
mod error;
mod fragment_pool;
mod provider;
mod snapshot;
mod state;
pub use cold_start::{
ColdStartMetrics, ColdStartOptimizer, WarmupConfig, WarmupScheduler, WarmupStats,
};
pub use error::{Result, ServerlessError};
pub use fragment_pool::{FragmentPool, FragmentPrewarmer, PoolConfig, PooledFragment};
pub use provider::{Provider, ProviderCapabilities, ProviderConfig, ProviderType, RequestContext};
pub use snapshot::{GpuSnapshot, SnapshotConfig, SnapshotManager};
pub use state::{FunctionState, StateDiff, StateManager, StateSerializer};
pub mod env {
pub fn is_lambda() -> bool {
std::env::var("AWS_LAMBDA_FUNCTION_NAME").is_ok()
}
pub fn is_cloudflare() -> bool {
std::env::var("CF_WORKER").is_ok()
}
pub fn is_serverless() -> bool {
is_lambda() || is_cloudflare()
}
pub fn function_name() -> Option<String> {
std::env::var("AWS_LAMBDA_FUNCTION_NAME")
.ok()
.or_else(|| std::env::var("CF_WORKER_NAME").ok())
}
pub fn memory_limit_mb() -> Option<u64> {
std::env::var("AWS_LAMBDA_FUNCTION_MEMORY_SIZE")
.ok()
.and_then(|s| s.parse().ok())
}
}