Skip to main content

xianyun_backends/
lib.rs

1//! Backend clients ported from `internal/backends/{docker,git,helm,hosts,kubectl,kustomize}`.
2//!
3//! Every Go test file in scope was read and, with the exceptions logged in
4//! each module's `PORT_NOTES.md` entry, ported to an equivalent Rust test.
5//! Every `Backend` trait mirrors its Go interface counterpart 1:1 so the
6//! dependency-injection shape (managers accept `Arc<dyn Backend>`) carries
7//! over unchanged. Each `Client` is implemented for real against its CLI
8//! tool; see `PORT_NOTES.md` for the handful of narrowly-scoped exceptions.
9//!
10//! Backends must stay stateless per the project's `AGENTS.md`: each
11//! `Client` holds only injected dependencies (an executor handle, a
12//! kubeconfig string, a filesystem), never mutable operational state, and
13//! each `Backend` method wraps a single CLI (or, for kustomize, in-process
14//! library) operation.
15
16pub mod docker;
17pub mod git;
18pub mod helm;
19pub mod hosts;
20pub mod kubectl;
21pub mod kustomize;