Origen Metal#
Origen Metal is the reusable foundation beneath Origen 2. It contains the domain models and infrastructure that are useful without requiring a complete Origen application, command-line environment, or documentation project.
Why It Is Separate#
The full origen package is an application framework. It owns concepts such
as application discovery, targets, plugins, command dispatch, generation
workflows, and project documentation. Those features are valuable when building
an Origen application, but they are unnecessary dependencies for a library or
tool that only needs the underlying semiconductor-development primitives.
Keeping Origen Metal separate provides:
a smaller reusable Rust crate and Python package;
domain APIs that do not require an Origen application to be present;
independent versioning and release notes;
a stable layer on which Origen and other tools can build; and
a clear boundary between reusable models and application orchestration.
How It Relates To Origen#
Origen 2 depends on Origen Metal and adds the user-facing application layer.
Most application authors should import origen and let it expose the
appropriate functionality. Use origen_metal directly when building a tool
or library that intentionally needs the lower-level facilities without the
full Origen application runtime.
The separation is architectural rather than a fork: both projects live in the same repository, are tested together, and use compatible interfaces, while remaining independently consumable and independently versioned.
What Belongs In Metal#
Origen Metal is the appropriate home for broadly reusable capabilities such as:
tester-neutral program-generation models and processors;
shared session, user, logging, configuration, and utility infrastructure;
revision-control and version primitives; and
low-level data structures used by more than one frontend or application.
Application discovery, project-specific commands, documentation orchestration, and the primary end-user API belong in Origen instead. This boundary keeps the foundation useful without forcing every consumer to adopt the complete O2 workflow.
APIs And Releases#
Origen Metal is available as both the origen_metal Python distribution and
the origen_metal Rust crate. The generated API documentation is included in
full documentation builds:
Because Metal can be consumed independently, it has its own version and release history. A combined O2 release may advance both products when O2 needs a new Metal version, but a Metal release does not inherently require a new O2 release.