1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// ============================================================================
// Strict linting - Dangerous or non-idiomatic practices are forbidden
// ============================================================================
// All warnings are treated as errors
// Unsafe code is forbidden
// All public items must be documented
// Unused code is forbidden
// Types must follow CamelCase convention
// Additional strictness - Leave nothing unchecked
// Unused imports are forbidden
// Unused variables are forbidden
// Must handle Result and Option explicitly
// Variables and functions must be snake_case
// Constants must be UPPER_CASE
// Non-standard code style is forbidden
// Unsafe ops in unsafe fns are forbidden
// Clippy lints (warnings only)
// All standard Clippy lints
// Very strict Clippy lints
// Experimental lints
// unwrap() warning
// expect() warning
// panic!() warning
// println!() warning
// TODO warning
// unimplemented!() warning
// Force const when possible
// unwrap() in Result warning
// Module with same name as crate warning
// Useless clones warning
// Shadowing unrelated variables warning
// Limit function arguments
// Limit cognitive complexity
// Safety and robustness lints
// Overflowing literals are forbidden
// Arithmetic overflow is forbidden
// ============================================================================
// Crate Documentation
// ============================================================================
//! # Halldyll Deploy Pods
//!
//! A declarative, idempotent, and reconcilable deployment system for `RunPod` GPU pods.
//!
//! ## Overview
//!
//! Halldyll provides a Kubernetes-like deployment experience for `RunPod`, allowing you to:
//!
//! - Define your infrastructure as code in a YAML configuration file
//! - Deploy and manage multi-pod GPU workloads
//! - Automatically reconcile drift between desired and actual state
//! - Track deployment history and state
//!
//! ## Architecture
//!
//! The system is built around the concept of **desired state reconciliation**:
//!
//! 1. **Desired State**: Defined in `halldyll.deploy.yaml`
//! 2. **Observed State**: Queried from `RunPod` API
//! 3. **Reconciler**: Compares states and executes necessary actions
//!
//! ## Modules
//!
//! - [`config`]: Configuration parsing and validation
//! - [`state`]: State storage backends (local, S3)
//! - [`runpod`]: `RunPod` API client and provisioning
//! - [`planner`]: Diff computation and execution planning
//! - [`reconciler`]: State reconciliation engine
//! - [`cli`]: Command-line interface
//!
//! ## Example
//!
//! ```yaml
//! project:
//! name: my-ml-stack
//! environment: prod
//!
//! pods:
//! - name: inference
//! gpu:
//! type: "NVIDIA A40"
//! count: 1
//! runtime:
//! image: ghcr.io/my-org/inference:latest
//! ports:
//! - "8000/http"
//! ```
// ============================================================================
// Modules
// ============================================================================
// ============================================================================
// Re-exports
// ============================================================================
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;