flusso-schema
The front door to the configuration layer: load a flusso configuration into a validated model.
[load] takes the path to a flusso.toml, reads the source and sinks from it, resolves and
parses every *.schema.yml the file references, and hands back a single [Config].
The format-specific crates (schema-config-toml, schema-index-yaml) and the core model
(schema-core) sit underneath. Downstream code depends only on this crate and reaches the
core types through its re-exports.
Example
let config = schema::load("flusso.toml")?;
for (name, index) in &config.indexes {
println!("{name}: table {} ({} fields)", index.schema.table, index.schema.fields.len());
}
# Ok::<(), schema::LoadError>(())
2-schema — config & schema loading
This group turns config files into the validated Config.
| Crate | Path | Role |
|---|---|---|
| schema | . | The front door: load() reads a flusso.toml + its *.schema.yml files into one validated Config, and re-exports the schema-core vocabulary. |
| schema-config-toml | 1-config-toml | Parses flusso.toml → neutral entities. |
| schema-index-yaml | 1-index-yaml | Parses *.schema.yml → core types. |
Each parser crate works in two stages: parse (serde → neutral entities), then convert
(entities → model). The flusso.toml → Config conversion lives in schema itself — a
composition step — so the toml parser stays free of Config.
Part of the flusso library crates.