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.