Skip to main content

ezexb

A read-only CAXA EXB parser with a Rust core, Python API and command-line tools. No CAXA installation is required.

Status: experimental. The reader supports a limited set of EXB layouts and returns explicit diagnostics for unsupported content. APIs may change before 1.0. Use it to extract supported data; check the read report before relying on a complete drawing.

Install

Requires GIL-enabled CPython 3.10 or newer. For a published release:

python -m pip install ezexb

To build from a source checkout, install Rust 1.83 or newer and run:

python -m pip install .

Prebuilt release wheels target Linux x86_64 and aarch64 (glibc 2.28+), Windows x86_64, and macOS Intel / Apple silicon. A source install requires a Rust toolchain. See development for an editable installation and tests.

Read a drawing

import ezexb

document = ezexb.read("drawing.exb", strict=False)
print("Complete:", document.report.complete)

for diagnostic in document.report.diagnostics:
    print(diagnostic.code, diagnostic.stream_path, diagnostic.span)

for entity in document.entities:
    if entity.kind == "Line":
        print(entity.geometry.start, entity.geometry.end)

strict=False requests a partial document. The default, strict=True, raises IncompleteReadError when required content cannot be read; the exception carries the same structured report. Unknown build profiles raise UnsupportedFeatureError in both modes. Input and resource errors always raise.

Coordinates are stored in each block's coordinate system, and physical units are not inferred. Use read_world() to expand a selected space. A complete report means completeness within the supported reader profile, not full EXB compatibility or CAXA display equivalence.

Command line

ezexb capabilities --json
ezexb read drawing.exb --partial --json
ezexb inspect drawing.exb --json
ezexb streams drawing.exb --sha256 --json
ezexb metadata drawing.exb --json
ezexb preview drawing.exb --output preview.bmp

List document.spaces to choose a space ID for world coordinates or an approximate SVG. For example, if the desired space has ID -7:

ezexb world drawing.exb --space=-7 --partial --json
ezexb svg drawing.exb --space=-7 --partial --output drawing.svg --json

read --partial can exit successfully with report.complete=false; inspect the JSON report in automation. Extraction commands refuse to overwrite existing files. preview extracts a cached BMP; svg generates an approximate drawing preview.

Supported data

Area Available data
Geometry POINT, LINE, CIRCLE, ARC, POLYLINE, stored NURBS and ELLIPSE parameters
Text and blocks TEXT, INSERT, attached attributes, attribute definitions
Fills and dimensions HATCH/SOLID boundaries and parameters; stored data and presentation for eleven dimension types
Symbols and callouts Selected roughness, geometric-tolerance, section and datum fields; part-number records and nested item presentations
Tables and views Stored general/hole-chart cells and layout, BOM header/row presentations, 2D view references and circular clips
Context Layers, linetypes, text styles, spaces and blocks
Inspection CFB streams, metadata, embedded BMP, decoded payloads and record headers

Support depends on the exact layout and build profile. Dimension/symbol construction, table/style resolution and regeneration, view placement/clipping, associativity, physical units, external references, native font layout and complete rendering remain unsupported. SVG uses approximate text and strokes; it does not regenerate hatch fills. A qualified zero-radius ARC pattern is retained as DegenerateArc with a diagnostic and is not drawn. Writing and DXF export are not provided.

Documentation

License

MIT; see LICENSE. This license covers ezexb's own code. Third-party drawings and vendor materials are not included in source or binary distributions.

Metadata

Release files for ezexb 0.2.0

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

Source distribution (sdist)

Source distribution for ezexb 0.2.0
File Size Uploaded Provenance
ezexb-0.2.0.tar.gz 189.7 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for ezexb 0.2.0
File
ezexb-0.2.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
ezexb-0.2.0-cp310-abi3-manylinux_2_28_x86_64.whl CPython 3.10 abi3 Linux glibc 2.28+ x86-64 Details
ezexb-0.2.0-cp310-abi3-manylinux_2_28_aarch64.whl CPython 3.10 abi3 Linux glibc 2.28+ ARM64 Details
ezexb-0.2.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
ezexb-0.2.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 3.3 MB

Release files / ezexb-0.2.0.tar.gz

Download URL ezexb-0.2.0.tar.gz
Size 189.7 kB
Tags Source
SHA-256 checksum
How to use checksums
69c19015bc4fe0e9a9566f1f647fd760683a98c8b1c58c37a0fa962bd57d4e39
BLAKE2b-256 checksum
How to use checksums
b72d4e9059231db073b42379bdde1dd4c5d43b106b9f2b8053c3bda00def00f8
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 Oct 19, 2026.

Transparency log

Release files / ezexb-0.2.0-cp310-abi3-win_amd64.whl

Download URL ezexb-0.2.0-cp310-abi3-win_amd64.whl
Size 540.4 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
99e626901f6c39e880872344f59facdaa86937e3549e7f2a2f1e278279808fad
BLAKE2b-256 checksum
How to use checksums
fff960a54fc7aad08fcc178f477ef6d6c9a7f5fcabc839bb14449d758a0fa337
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 Oct 19, 2026.

Transparency log

Release files / ezexb-0.2.0-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL ezexb-0.2.0-cp310-abi3-manylinux_2_28_x86_64.whl
Size 661.0 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
1a9fe10624a0d9011f0c4f2f66c850244fc06489436b02bcd30c6bcc14a6db95
BLAKE2b-256 checksum
How to use checksums
c00e51b3e5ed7b9d060d8d8d7ccaebaf0bee3f2599cd500a8354a31933212e76
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 Oct 19, 2026.

Transparency log

Release files / ezexb-0.2.0-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL ezexb-0.2.0-cp310-abi3-manylinux_2_28_aarch64.whl
Size 654.0 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
d9ec70cec0e5d978a831a278d492cee92141eaed8ee8dda2f7fad5f67bd69608
BLAKE2b-256 checksum
How to use checksums
e62f52ddbf7968a199040c94240bcd41bcf91171e5114774bbae1b85a7285338
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 Oct 19, 2026.

Transparency log

Release files / ezexb-0.2.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL ezexb-0.2.0-cp310-abi3-macosx_11_0_arm64.whl
Size 616.0 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8d146774bbee477f2c234716b3cd39228bd1ef57a441f0eb78a89d7521d6709c
BLAKE2b-256 checksum
How to use checksums
0e8f27f83c0388b7f179b47429c50902bd14ba804d8d8677a93e282b015fff8c
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 Oct 19, 2026.

Transparency log

Release files / ezexb-0.2.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL ezexb-0.2.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 627.3 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
eb615918be13b6e7c8c4677c3d628c2b491d0788d00721fdd715b4c213345985
BLAKE2b-256 checksum
How to use checksums
93d3aedf4ffc2ee0276fab52998fc2ce1a746f8e5d1d90f2f9a65cccb89f3fd5
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 Oct 19, 2026.

Transparency log

Security for ezexb 0.2.0

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 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for ezexb-0.2.0.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 Oct 19, 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