| Crates.io | symphony |
| lib.rs | symphony |
| version | 0.1.4 |
| created_at | 2025-03-02 22:10:33.468068+00 |
| updated_at | 2025-09-09 16:40:53.558551+00 |
| description | Eclipse Symphony Target Provider Rust binding |
| homepage | |
| repository | https://github.com/eclipse-symphony/symphony.git |
| max_upload_size | |
| id | 1574923 |
| size | 46,873 |
This crate provides the Eclipse Symphony Target provider Rust binding, which allows a custom Target provider to be written in Rust.
Symphony is a toolchain orchestrator that aims to provide consistent management experience across multiple toolchains. A key capability of Symphony is state seeking, where a system's current is brought towards a new desired state. Symphony allows different toolchains to join the state seeking process through a Target Provider trait.
pub trait ITargetProvider: Send + Sync {
fn get_validation_rule(&self) -> Result<ValidationRule, String>;
fn get(&self, deployment: DeploymentSpec, references: Vec<ComponentStep>) -> Result<Vec<ComponentSpec>, String>;
fn apply(&self, deployment: DeploymentSpec, step: DeploymentStep, is_dry_run: bool) -> Result<HashMap<String, ComponentResultSpec>, String>;
}
get() method returns the current state of a system.apply() method applies the new desired state.get_validation_rule() allows a provider to define what properties are expected in the incoming state spec, and what properties to be used for change detection.| Provider | Info |
|---|---|
| ankaios | An Eclipse Ankaios provider |
| mock | A mock provider for testing purposes |