Rust API#

The public Rust API follows the version-one workflow rather than the retired scaffold/auto-emitter surface.

Canonical package modules#

Module

Responsibility

package

schema-versioned plan, profiles, locks, stack policy, CycloneDX conversion

package_config

layered public profile TOML

package_solve

profile materialization and Resolvo lock generation

package_emit

one deterministic EasyBuild recipe per profile lock

package_workflow

inspect, new-package plan, bump plan, and bundle writer

Primary entry points:

  • inspect_new_package;

  • plan_new_package;

  • plan_package_bump;

  • write_package_bundle;

  • solve_package_profile / solve_package_profile_with_hierarchy;

  • emit_profile_easyconfigs.

Parsing and stack solving#

parse_foreign_path and parse_foreign_str return the syntax-normalized foreign model. package_plan_from_foreign is the canonical adapter.

eb_parse exposes EasyBuild parsing, robot tree merging, package gates, and dependency checks. resolvo_provider implements candidate selection, policy pins, stack preferences, locked pins, and exclusions. select provides the whole-stack optimization path.

Targets and campaigns#

target exposes layered TOML types, target resolution, command plans, staging, and target doctor reports. campaign exposes campaign state, typed findings, claim/resolve operations, failure classification, and run_campaign.

Generated API pages#

The crate pages are generated from Rust source:

pixi run -e docs gen-rust-api

Rust API (eb_stack)#