Expand description
Ferroclass — hierarchical inventory management compatible with Python reclass.
Ferroclass reads a directory tree of YAML class and node definitions,
resolves class inheritance and variable interpolation ($[...] references
and inventory queries), merges parameters, and produces structured output
for Ansible, Salt, or plain reclass-compatible formats.
§Quick start
use ferroclass::{Inventory, Options, StorageOptions, StorageType};
let options = Options::default();
// Load from a YAML filesystem layout (requires a real directory):
// let inventory = ferroclass::load(&options.storage_options).unwrap();
// Merge a single node:
// let merged = inventory.merge_node("web01.example.com").unwrap();§Crate layout
inventory— core domain types, loading, and mergingoutput— formatting to Ansible, Salt, and reclass YAML/JSONconfiguration— loadingreclass-config.ymlconfiguration filesstorage— filesystem backends for reading YAML classes and nodescli— CLI argument definitions shared by the binaries
Re-exports§
pub use inventory::Inventory;pub use inventory::load;pub use inventory::load_from_yaml_string;pub use inventory::load_from_yaml_string_with_uri;pub use inventory::options::Options;pub use inventory::options::MergeConfig;pub use inventory::options::OutputFormat;pub use inventory::options::OutputOptions;pub use inventory::options::ParameterKeyStyle;pub use inventory::options::StorageOptions;pub use inventory::options::StorageOptionsTrait;pub use inventory::options::StorageType;pub use inventory::options::YamlFileStorageOptions;pub use inventory::options::YamlFsStorageOptions;
Modules§
- cli
- CLI argument definitions for each binary.
- configuration
- Configuration file loading and resolution.
- inventory
- Core inventory types, loading, and merging.
- output
- Output formatting — the format layer of the three-layer architecture.
- storage
- Storage backends for reading YAML class and node definitions from disk.