This release is a pre-release and may not be stable for production use.
rocket-engine
Part of RocketIDE · the engine
rocket-engine is RocketEDA's headless Python engine for chip-design projects. It owns the shared operation surface, project revisions and events, tool dispatch, capability reporting, and verification evidence used by manual clients and the agent harness.
The product serves digital, analog, photonic, and mixed-domain work. The engine coordinates existing EDA tools through adapters; it does not implement an agent loop or physics solvers. Product direction lives in the sibling PRD. The agent harness is in rocket_fuel, the current workbench is in UIUX, and RocketIDE is the planned packaging layer.
Requirements
pip ships the engine, not the tools. Native binaries, PDK trees,
and cloud keys arrive via provision recipes, your own PATH, or
explicit opt-in. The engine resolves provisioned roots first, then
ambient PATH, then per-job tool_dir; report_capabilities tells
you exactly what resolved and the remedy for what did not.
Native tools (provision or PATH)
| Capability | Provides | How to get it |
|---|---|---|
| Digital bundle (oss-cad-suite) | iverilog, vvp, verilator, slang, yosys, ghdl, sby |
scripts/provision_toolchain.sh: pinned tarball 20261025 + asserts (PROV phase 1). |
| LibreLane (RTL-to-GDS flow) | librelane |
scripts/provision_toolchain.sh (PROV phase 1; upstream AppImage/Nix install docs). |
| OpenSTA (static timing) | sta |
scripts/provision_toolchain.sh (PROV phase 1; upstream OpenSTA README source build). |
| ngspice (SPICE) | ngspice |
docs/provision-plan.md: apt pin or source build (B10). |
| Netgen (LVS) | netgen |
docs/tickets/NGSPICE-LIVE.md: opencircuitdesign source build (B10). |
| Magic (DRC + extraction) | magic |
docs/provision-plan.md: source build with --prefix into the app-owned tools dir (B10). |
| KLayout (batch DRC) | klayout |
docs/provision-plan.md: ambient install kept and version-asserted (B10). |
| Xyce (parallel SPICE) | Xyce |
scripts/provision_toolchain.sh (PROV phase 2; Xyce building guide recipe). |
| Xschem (schematic) | xschem |
scripts/provision_toolchain.sh (PROV phase 2; upstream xschem source build). |
| Bubblewrap (isolation) | bwrap |
docs/probe-bwrap-isolation.md (B10). |
| cvc (SMT solvers) | cvc4, cvc5 |
scripts/provision_toolchain.sh: pinned tarball 20261025 ships cvc4/cvc5 (PROV phase 1). |
| OpenROAD | openroad |
scripts/provision_toolchain.sh (PROV phase 1; LibreLane closure ships openroad). |
| openEMS (EC-FDTD) | openEMS |
scripts/provision_toolchain.sh (PROV-DEFERRED; docs.openEMS.de recipe). |
| Elmer (thermal/FEM) | ElmerSolver |
scripts/provision_toolchain.sh (PROV-DEFERRED; CSC PPA apt route). |
| Palace (full-wave FEM) | palace |
docs/provision-sources.md §12 (unsourced — no recipe yet). |
Python libraries (ride the wheel)
| Capability | Provides | How to get it |
|---|---|---|
| CACE (characterization) | cace |
scripts/provision_toolchain.sh (PROV phase 2; pip into the engine venv). |
| SAX (photonic sim) | sax |
pyproject.toml [project] dependencies: plain uv sync installs everything (core library). |
| Circulax (time-domain circuit sim) | circulax |
pyproject.toml [project] dependencies: plain uv sync installs everything (core library). |
| Meow (EME mode/field solver) | meow |
pyproject.toml [project] dependencies: plain uv sync installs everything (core library). |
| gdsfactory (layout views) | gdsfactory |
pyproject.toml [project] dependencies: plain uv sync installs everything (core library). |
| pymeep (FDTD) | meep |
scripts/provision_toolchain.sh (PROV-DEFERRED; conda-forge pymeep env). |
| DEVSIM (TCAD) | devsim |
scripts/provision_toolchain.sh (PROV-DEFERRED; pip into the engine venv). |
PDKs (registered trees, never in the wheel)
| Capability | Provides | How to get it |
|---|---|---|
| PDK sky130A | sky130A + 4 decks |
scripts/install.sh --pdk-only (PDK_SOURCE/PDK_ID/PDK_REVISION; see docs/demo-runbook.md). |
| PDK ihp (IHP SG13G2 BiCMOS + RF) | ihp + 1 decks |
docs/pdk/ihp/recipe.md (PDK-IHP lane). |
Cloud (opt-in only, never default)
| Capability | Provides | How to get it |
|---|---|---|
| Tidy3D web (cloud) | BYOC: tidy3d web | CLOUD-AUTH (Backlog): OS keyring preferred, encrypted file fallback. |
| GDSFactory+ (cloud) | BYOC: gdsfactory+ | CLOUD-AUTH (Backlog): OS keyring preferred, encrypted file fallback. |
Current shape
src/is the package root and installs asrocket_engine.composition.pyis the composition root. It binds project and execution services, operation/query handlers, and solver adapters.- Transports use the same operation vocabulary. The live CLI and MCP server are implemented. HTTP and IPC currently provide JSON envelope handlers; listening servers, SSE delivery, and length-prefixed IPC framing are not implemented here.
- Project mutations are revision-gated and actor-attributed. A durable project ledger is available when an engine root is configured; an engine without one keeps project state in memory.
- Engine
submitruns normal solver operations inline and returns their completion.run_jobremains the explicit deferred/batch pump and idempotent completion fetch. - Tool registration describes what the engine can route. Machine-specific availability and PDK/deck readiness come from
get_capabilities; registration alone does not mean a flow is qualified or installed.
Architecture
UI / CLI / Rocket Fuel
│
adapters/{http,ipc,mcp,cli}
│ commands and queries
composition.Engine
├── project/ revisions, documents, components, events
├── execution/ dispatch, isolation, run state, verdicts
├── library/ PDK and cell catalogs
└── workflows/ D/A/P/M check plans and completion gates
│
adapters/<solver> ──> native EDA tools and Python libraries
│
normalized findings, measurements, artifacts
interfaces/ defines the shared vocabulary, data shapes, and ports. Transport adapters translate client requests into engine calls. Solver adapters preflight project inputs, invoke tools, and normalize their output. The engine evaluates findings and publishes project events; transports do not own verification rules.
| Module | Responsibility |
|---|---|
src/interfaces/ |
Operation/query vocabulary, contracts, ports, path and design-data types |
src/project/ |
Revision-gated documents, ECS components, snapshots, and event ledger |
src/execution/ |
Run lifecycle, bounded dispatch, isolation, Python execution approvals, and verdicts |
src/library/ |
PDK registration/readiness and reusable cell catalogs |
src/workflows/ |
Digital, analog, photonic, and mixed-domain stage plans and completion checks |
src/adapters/ |
CLI, MCP, HTTP/IPC envelope handlers, and solver integrations |
Registered solver operations
| Operations | Adapter(s) |
|---|---|
run_drc |
Magic (default), KLayout |
run_hdl_test, run_syntax, run_formal, run_synth, run_timing |
Icarus, Slang, SBY, Yosys, OpenSTA |
run_spice, run_post_layout, run_cosim |
ngspice; co-simulation also uses Icarus |
run_optical, run_em |
SAX/Circulax, MEOW |
run_extraction, run_lvs |
Magic, Netgen |
run_connectivity, run_erc, run_view_sync |
connectgraph |
generate_views |
GDSFactory |
run_digital_flow |
LibreLane |
This is a routing map, not a support guarantee. Consult get_capabilities for installed tools, profiles, PDKs, and decks. The LibreLane adapter is registered and has hermetic coverage; its live RTL-to-GDS qualification is currently blocked on the pinned LibreLane distribution and a compatible PDK root. See the DIGITAL-FLOW report and the sprint board for current work status.
API contract
Next implementation contract: the v1 contract bundle
freezes six methods (describe, query, edit, run, script, watch),
typed editors/components/testbenches, tool tasks and canvas.toml.
It includes generated client types/help and validated examples. Provider and
consumer migration is pending; the current running API below is v0.
ADR-014 records the
supersession and deployment gates. Check the design contract with
.venv/bin/python scripts/check_v1_contract.py.
The operation and query vocabulary is in src/interfaces/vocabulary.py. Handler docstrings are the source for the generated docs/engine-api.md, docs/api-schema.json, and docs/api-help.json. Do not hand-edit those generated files; regenerate them with scripts/api_spec.py --write.
Every accepted mutation checks expected_revision, advances the project revision, and records its actor. A stale revision returns revision_conflict; callers re-read and retry. Run verdicts are engine-owned. Exit status and tool process output alone never establish PASS.
The current MCP bridge derives descriptions from handler docstrings. Its wire input schemas are still generic for most tools; only python_execute currently has a specific schema. See MCP-SCHEMA.
Setup and common commands
Use the repository installer as the only supported Python environment setup. It creates the pinned Python 3.12 environment, installs the base and development dependencies, installs a sealed engine copy, registers the configured PDK, and probes selected host tools.
scripts/install.sh --install
.venv/bin/python -m rocket_engine --help
scripts/install.sh --check-only
Native tool provisioning is documented in docs/provision-plan.md and managed by scripts/provision_toolchain.sh. get_capabilities reports what is usable on the current machine. After editing src/, rerun scripts/install.sh --install so the sealed package matches the source tree.
For operation docstring and generated-contract conventions, read AGENTS.md. It also documents the test and fixture workflow. The scenario guide describes live-tool prerequisites and the scenario CLI.
Where to look next
- Project requirements and decisions:
../PRD/README.md - Current engine work and open tickets:
docs/sprint-board.md,docs/tickets/ - Fuel integration contract:
docs/fuel-contract.md - Generated engine API:
docs/engine-api.md - Storage ownership:
docs/storage-policy.mdanddocs/adr/
Metadata
Release files for rocket-engine 0.0.2b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| rocket_engine-0.0.2b1.tar.gz | 3.4 MB | Without provenance | Details for rocket_engine-0.0.2b1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| rocket_engine-0.0.2b1-py3-none-any.whl | Python 3 | none | any | Details for rocket_engine-0.0.2b1-py3-none-any.whl |
Total release size: 4.2 MB
Release files / rocket_engine-0.0.2b1.tar.gz
| Download URL | rocket_engine-0.0.2b1.tar.gz |
|---|---|
| Size | 3.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9dd7d05188203c431a69165579f2ab4bce71f71b6909b0aefe72784c4ae0704a
|
|
BLAKE2b-256 checksum How to use checksums |
5dc68e19426f142e3b0f767962537a405fef3ce8ada04d46569a477c2c0fc26f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / rocket_engine-0.0.2b1-py3-none-any.whl
| Download URL | rocket_engine-0.0.2b1-py3-none-any.whl |
|---|---|
| Size | 731.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1ce7a53bf7bf47fc05412e3f29f2e427e3938c487ddbdd37f58694a36bb7f657
|
|
BLAKE2b-256 checksum How to use checksums |
1614efa7a54124e8793d4bceb93c812b3040cf99461560afd9e4d3019bedf7f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for rocket-engine 0.0.2b1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.