Skip to main content

Crate os_foundry_suite

Crate os_foundry_suite 

Source
Expand description

§os_foundry_suite

os_foundry_suite is a Rust 2024 suite crate that unifies multiple OS-building crates into a single, cohesive entry point.

§What this crate provides

  • A stable, well-documented facade (prelude, OsBlueprint, OsBuilder, Target).
  • Suite presets: Profiles.
  • Integration validation: validate_blueprint_integrations().
  • Optional, feature-gated re-exports of the underlying crates.
  • Suite-level conventions: naming, configuration validation, and integration points.

§Underlying crates

The following crates can be enabled via feature flags and accessed through os_foundry_suite::crates::*.

  • os_kernel_foundry (kernel-foundry)
  • os_dev_toolkit (dev-toolkit)
  • os_metal_primitives (metal-primitives)
  • os_service_fabric (service-fabric)
  • os_linker_sculptor (linker-sculptor)
  • os_slab_vault (slab-vault)
  • os_abi_sentinel (abi-sentinel)
  • os_state_maestro (state-maestro)
  • os_observatory (observatory)
  • os_image_lens (image-lens)

§Attribution

This project was produced by an artificial intelligence system (AI) based on an original idea by alisio85.

§os_foundry_suite

This crate is a suite facade that unifies multiple OS-building crates into a single, coherent, well-documented entry point.

It is designed to:

  • Provide a stable, user-friendly orchestration API (blueprints, builders, targets).
  • Re-export the underlying crates behind feature flags.
  • Offer conventions and integration helpers so downstream projects can compose kernel, services, ABI contracts, state machines, observability, and images with less friction.

§Feature flags

The underlying crates are optional dependencies. Enable only what you need:

  • kernel-foundry => os_kernel_foundry
  • dev-toolkit => os_dev_toolkit
  • metal-primitives => os_metal_primitives
  • service-fabric => os_service_fabric
  • linker-sculptor => os_linker_sculptor
  • slab-vault => os_slab_vault
  • abi-sentinel => os_abi_sentinel
  • state-maestro => os_state_maestro
  • observatory => os_observatory
  • image-lens => os_image_lens

Additional features:

  • serde enables serialization support for select suite-level types.

§Quick start

use os_foundry_suite::prelude::*;

let blueprint = OsBlueprint::minimal_dev();
blueprint.validate().unwrap();

let plan = OsBuilder::new(blueprint)
    .target(Target::x86_64_bare_metal())
    .validate_and_plan()
    .unwrap();

assert_eq!(plan.target.arch, Arch::X86_64);

§Scope

This crate intentionally focuses on composition and orchestration. It does not attempt to hide all complexity involved in OS development; instead it provides a consistent structure and strongly-typed configuration to reduce accidental complexity.

Re-exports§

pub use artifacts::ArtifactCatalog;
pub use artifacts::BuildMetadata;
pub use artifacts::WorkspaceLayout;
pub use builder::BuildPlan;
pub use builder::OsBuilder;
pub use config::AbiPolicy;
pub use config::ImageConfig;
pub use config::ImageKind;
pub use config::KernelConfig;
pub use config::MemoryConfig;
pub use config::ObservabilityConfig;
pub use config::OsBlueprint;
pub use config::ServiceSet;
pub use config::ValidationReport;
pub use error::Error;
pub use error::Result;
pub use execution::CommandSpec;
pub use execution::ExecutionPlan;
pub use execution::ExecutionPlanner;
pub use execution::QemuRunSpec;
pub use execution::ToolchainChannel;
pub use execution::ToolchainSpec;
pub use execution::plan_execution;
pub use export::CommandExport;
pub use export::ExecutionPlanExport;
pub use export::ImagePlanExport;
pub use export::ServiceGraphExport;
pub use export::SuiteReportExport;
pub use image::BootArtifact;
pub use image::ImageLayoutIntent;
pub use image::ImagePlan;
pub use image::PartitionScheme;
pub use image::PartitionSpec;
pub use image::plan_image;
pub use integration::validate_blueprint_integrations;
pub use pipeline::derive_artifacts;
pub use profiles::Profiles;
pub use report::SuiteReport;
pub use services::ServiceGraph;
pub use services::ServiceId;
pub use services::ServiceNode;
pub use targets::Arch;
pub use targets::Target;

Modules§

artifacts
Workspace and artifact modeling.
builder
config
crates
Re-exports of the underlying crates, gated behind feature flags.
error
execution
export
image
integration
pipeline
prelude
Common imports for os_foundry_suite users.
profiles
report
services
targets