Skip to main content

Zirium

Zirium 0.0.3 is an experimental release. The API may change without a migration path.

Zirium is a Rust library for reading, inspecting, transforming, and writing textual MLIR. It also provides typed Python bindings. The parser keeps the original bytes, including comments, whitespace, malformed syntax, and invalid UTF-8. A separate semantic layer provides a compact representation for verification and editing.

The project is useful when a tool needs to understand MLIR without linking LLVM, and when source fidelity matters alongside semantic processing.

Zirium currently targets the textual syntax of MLIR 22.1. It has a deliberately narrow dialect surface and is not a replacement for all of MLIR's parser or ODS infrastructure.

The current release is intended for experimentation, tooling prototypes, and evaluation of the lossless syntax/semantic split. It does not promise broad dialect coverage, bytecode support, ODS/TableGen loading, or a stable API.

What it provides

  • A byte-oriented lexer and lossless concrete syntax tree (CST).
  • Recovery from malformed input with ranged diagnostics and useful outer structure.
  • Standard module handling and caller-provided func-like and call-like operation shapes.
  • Diagnostic-bearing recovery of unknown custom operations, including nested regions.
  • Strict and best-effort lowering into a separate semantic document.
  • Operations, regions, blocks, SSA values, types, attributes, locations, symbols, and dominance queries.
  • Python inspection of exact type and attribute spellings, scalar attributes, and stable value identity.
  • Deterministic generic MLIR output and structural round-trip comparison.
  • Buffered semantic edits that commit atomically.
  • Conservative source-preserving output for documents lowered with hybrid retention.
  • Rust and Python APIs over the same core implementation.
  • Explicit limits for file size, token count, nesting, and large payloads.

A small example

import zirium

source = '''\
"builtin.module"() ({
  %value = "example.make"() : () -> i32
  "example.consume"(%value) : (i32) -> ()
}) : () -> ()
'''

parsed = zirium.parse_text(source)
assert parsed.original_bytes() == source.encode()

lowered = parsed.lower_strict("semantic")
if lowered.document is None:
    for diagnostic in lowered.diagnostics:
        print(diagnostic.range, diagnostic.message)
    raise SystemExit(1)

document = lowered.document
document.validate_structure()
table = document.operation_table()
print([table.operation(index).name for index in range(table.count)])
print(document.canonical_bytes().decode(), end="")

Parsing and lowering are separate on purpose. A File owns the original bytes, tokens, CST, and syntax diagnostics. A Document owns resolved semantic data. This keeps malformed-source tooling from depending on a partly valid semantic model, while transformation code does not have to operate on syntax nodes.

Getting started

Zirium requires Rust 1.85 or newer. The Python package supports conventional CPython 3.11 through 3.14. Release artifacts are currently proven only for Linux x86_64 and macOS arm64 by CI; other platforms require a local source build with maturin and are not part of the platform promise. Wheels remain specific to each supported CPython version rather than using the stable ABI.

The getting-started guide covers:

  • building and testing the Rust workspace;
  • installing the Python extension into a virtual environment;
  • parsing, lowering, verifying, and writing MLIR;
  • choosing a retention profile and output mode.

The CLI examples show how to query and edit small MLIR files with the zirium command.

For the shortest check from a fresh checkout:

cargo test --workspace

Install a published Python wheel with:

python -m pip install zirium

If a wheel is not available yet, build the extension locally using the getting-started guide.

Output modes

Zirium has three output paths, each with a different contract:

Output Source object Contract
Original Parsed file Reproduces the input bytes exactly.
Canonical Semantic document Emits deterministic generic MLIR from semantic storage.
Preserving Hybrid semantic document Copies unchanged source and regenerates edited operations or blocks.

Canonical output intentionally does not preserve comments, whitespace, aliases, or SSA spelling. Use original output when no semantic edit is needed, and hybrid retention when edits should leave unrelated source text alone.

Dialect support

Generic quoted operations are handled without a dialect registry. Unknown dialect types and attributes keep their balanced bodies as opaque values.

Registered custom syntax is currently a proving surface rather than broad MLIR dialect coverage. The built-in proving registry covers a fixed subset of Builtin, Func, Arith, and CF operations. A declarative registry can select from that same fixed set. Zirium does not load LLVM dialect definitions, interpret arbitrary ODS/TableGen files, or run Python callbacks while parsing.

See compatibility and local wheel checks for the exact toolchain and CPython matrix. The corpus notes explain how syntax compatibility is tied to llvmorg-22.1.0.

Repository layout

crates/zirium/          Core Rust library
crates/zirium-python/   PyO3 extension module
python/zirium/          Python package and type declarations
python/tests/           Python API tests
tests/corpus/           Versioned MLIR compatibility corpus
docs/                   Usage, compatibility, and architecture notes
fuzz/                   Lexer and parser fuzz targets

The architecture notes include the syntax representation baseline and processing benchmarks.

Development checks

The complete local quality gate, including the supported Rust and Python versions, is documented in the compatibility guide. The CI workflow runs those same commands.

Python development details are documented in the getting-started guide. The release guide records the registry setup, package checks, and publication order.

License

Zirium's original code is available under the MIT or Apache 2.0 license. Some MLIR-derived or adapted test material retains the provenance and licensing information recorded in the corpus manifest.

Release notes are recorded in the changelog.

Metadata

Release files for zirium 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zirium 0.0.3
File Size Uploaded Provenance
zirium-0.0.3.tar.gz 201.8 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for zirium 0.0.3
File
zirium-0.0.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
zirium-0.0.3-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
zirium-0.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
zirium-0.0.3-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
zirium-0.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
zirium-0.0.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zirium-0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
zirium-0.0.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 7.7 MB

Release files / zirium-0.0.3.tar.gz

Download URL zirium-0.0.3.tar.gz
Size 201.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8900bdfad8fc601aac61f3db25132b6122eb796ad18c8f1ac34413c099643513
BLAKE2b-256 checksum
How to use checksums
6c5fe35c6f0213dae18a6fc1ac05e76ccfbf41b5503d1ae35be94a96aeb1e503
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / zirium-0.0.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zirium-0.0.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 982.6 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b3e8e873d0f79c4b46e3576ac9e53f102255fe33021072686b97a9abb3375ba3
BLAKE2b-256 checksum
How to use checksums
3fb78a9643b91cc78f665eb0f497a2497c0acb6084e80ea093752e78cbf444a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / zirium-0.0.3-cp314-cp314-macosx_11_0_arm64.whl

Download URL zirium-0.0.3-cp314-cp314-macosx_11_0_arm64.whl
Size 894.7 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
60dba67fcb4514ea2ca3725618543e985f5398ac46f34fda7dff8cb34429a808
BLAKE2b-256 checksum
How to use checksums
4b21e2574b75fa5948a1e915fbdfcbeadbb5714bf71db5c71425d7bc8e791aa1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / zirium-0.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zirium-0.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 980.4 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6d24fb8bb97d24e229a6278a8e8d920279fc91c5d0a25894dc3d077a796de647
BLAKE2b-256 checksum
How to use checksums
657d220453781a83f4e8ccbf797d7f2c6dbaa550cf2619e469d7198fa14a55c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / zirium-0.0.3-cp313-cp313-macosx_11_0_arm64.whl

Download URL zirium-0.0.3-cp313-cp313-macosx_11_0_arm64.whl
Size 894.5 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2f7dab08f29d59c45da03218349c140df38546220ff786e404bb341b92cecfcc
BLAKE2b-256 checksum
How to use checksums
b1be45d34bb7158937a0cde3550be63fe6a97c7a3a3ece245aef9257f788e7dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / zirium-0.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zirium-0.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 980.6 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8839ca0621454336c2438f67beed1f8b77e28e9ce0ff7fc3ee6f9872bdc2029c
BLAKE2b-256 checksum
How to use checksums
cef6b56033864c83d52dd7522efa63bf61047591c9a79dcf525c357ba98f44b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / zirium-0.0.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL zirium-0.0.3-cp312-cp312-macosx_11_0_arm64.whl
Size 894.3 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2001508167763284ef169d4988740c779200c4de6a0b59d30a53d09cd101c6be
BLAKE2b-256 checksum
How to use checksums
484f45ed19a10dc99631eb0a5c51ee44763921c2aca7fcabdea90a4b530022a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / zirium-0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zirium-0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 984.6 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4dd09178d9672f79ddd18d8658350d97f5d98f713419a39e9b8c2294811e9dcf
BLAKE2b-256 checksum
How to use checksums
afe6caef06afddb43878333a5897393e910e1a376a60cba8696a8864dbecbfb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / zirium-0.0.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL zirium-0.0.3-cp311-cp311-macosx_11_0_arm64.whl
Size 897.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1de0c94a530fd894f28bddc1dba3ad437bd4bb54fbd6e66c3639e7ee7200b69a
BLAKE2b-256 checksum
How to use checksums
f5be70b3f807583aff95f867338a659a6a7e4f1fcd2f43119075620badc18a30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Security for zirium 0.0.3

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.

Full provenance

All 9 files in this release have been uploaded with provenance metadata.

Select from 9 files

Attestation for zirium-0.0.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page