symphony

Crates.iosymphony
lib.rssymphony
version0.1.4
created_at2025-03-02 22:10:33.468068+00
updated_at2025-09-09 16:40:53.558551+00
descriptionEclipse Symphony Target Provider Rust binding
homepage
repositoryhttps://github.com/eclipse-symphony/symphony.git
max_upload_size
id1574923
size46,873
(Haishi2016)

documentation

README

Eclipse Symphony Target Provider Rust Binding

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>; 
 }
  • The get() method returns the current state of a system.
  • The apply() method applies the new desired state.
  • The 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.

Current Rust based Target Providers

Provider Info
ankaios An Eclipse Ankaios provider
mock A mock provider for testing purposes
Commit count: 0

cargo fmt