haagenti_serverless/
lib.rs1mod cold_start;
10mod error;
11mod fragment_pool;
12mod provider;
13mod snapshot;
14mod state;
15
16pub use cold_start::{
17 ColdStartMetrics, ColdStartOptimizer, WarmupConfig, WarmupScheduler, WarmupStats,
18};
19pub use error::{Result, ServerlessError};
20pub use fragment_pool::{FragmentPool, FragmentPrewarmer, PoolConfig, PooledFragment};
21pub use provider::{Provider, ProviderCapabilities, ProviderConfig, ProviderType, RequestContext};
22pub use snapshot::{GpuSnapshot, SnapshotConfig, SnapshotManager};
23pub use state::{FunctionState, StateDiff, StateManager, StateSerializer};
24
25pub mod env {
27 pub fn is_lambda() -> bool {
29 std::env::var("AWS_LAMBDA_FUNCTION_NAME").is_ok()
30 }
31
32 pub fn is_cloudflare() -> bool {
34 std::env::var("CF_WORKER").is_ok()
36 }
37
38 pub fn is_serverless() -> bool {
40 is_lambda() || is_cloudflare()
41 }
42
43 pub fn function_name() -> Option<String> {
45 std::env::var("AWS_LAMBDA_FUNCTION_NAME")
46 .ok()
47 .or_else(|| std::env::var("CF_WORKER_NAME").ok())
48 }
49
50 pub fn memory_limit_mb() -> Option<u64> {
52 std::env::var("AWS_LAMBDA_FUNCTION_MEMORY_SIZE")
53 .ok()
54 .and_then(|s| s.parse().ok())
55 }
56}