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 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 five dimension types
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 construction and 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. 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.1.1

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.1.1
File Size Uploaded Provenance
ezexb-0.1.1.tar.gz 154.2 kB With provenance Details

Built distributions (wheels)

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

Total release size: 3.0 MB

Release files / ezexb-0.1.1.tar.gz

Download URL ezexb-0.1.1.tar.gz
Size 154.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4d796636bdb187bda41219b00d49e87db8731925ee9b1b1e53a6085750f75353
BLAKE2b-256 checksum
How to use checksums
c725dc488b12479a91ba302d85487e6ff969de69747a130a0962db21bab786d0
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.1.1-cp310-abi3-win_amd64.whl

Download URL ezexb-0.1.1-cp310-abi3-win_amd64.whl
Size 484.7 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
fcfd8cb938cc69dc51c42b815e6bef2d648e77a8f383f2fafe4fdcdaf02d1a3a
BLAKE2b-256 checksum
How to use checksums
f04a6546ab37e1043c6b25b6d74e70d02f1ce2b3bcc0ebd665e16a0a42aad857
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.1.1-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL ezexb-0.1.1-cp310-abi3-manylinux_2_28_x86_64.whl
Size 604.9 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
c956f78adaa0424df5c732bdc47c5cfc272e73b34753aec73c595213fd66d2bf
BLAKE2b-256 checksum
How to use checksums
6f41864539181e1ed8d1a0bf81aa68726b3f126a843f7c9d5be2611ec03b02f2
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.1.1-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL ezexb-0.1.1-cp310-abi3-manylinux_2_28_aarch64.whl
Size 597.2 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
0441acbd1e543df618a67a628ab52b41007327834f255d3080493e088e8aa065
BLAKE2b-256 checksum
How to use checksums
5cfd6555815c80bc96804ccbe1ef753b2540d79b1b9b684021d71426a02b89b9
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.1.1-cp310-abi3-macosx_11_0_arm64.whl

Download URL ezexb-0.1.1-cp310-abi3-macosx_11_0_arm64.whl
Size 559.7 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a0a65d1ef64855f75d11aba284e46be4891c5dded229ec02e5b596cd5df02644
BLAKE2b-256 checksum
How to use checksums
642fae1f56058e72ef5da5ea4342bc8c16e94bc99c0a8d64df090c8d6f5ee94e
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.1.1-cp310-abi3-macosx_10_12_x86_64.whl

Download URL ezexb-0.1.1-cp310-abi3-macosx_10_12_x86_64.whl
Size 572.7 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9502dfd2182e7206528d328c3157c55f79af52d49b732d765cb0517405aa5ed9
BLAKE2b-256 checksum
How to use checksums
b43d460c8e0f126aae0f7495d45cab0c1050c623f6a05a28acfae82df953f98e
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.1.1

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.1.1.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