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

Built distributions (wheels)

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

Total release size: 2.4 MB

Release files / ezexb-0.1.0.tar.gz

Download URL ezexb-0.1.0.tar.gz
Size 154.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b00d6baea57339bc7d4cc7fb45b35b7d6b9b2b38cb4872b6c3893b73be5f19af
BLAKE2b-256 checksum
How to use checksums
a7651c6f568e9de38e3d9df80c1ed5d93ac4ee2914ce207f290373bd7dd95bd3
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.0-cp310-abi3-win_amd64.whl

Download URL ezexb-0.1.0-cp310-abi3-win_amd64.whl
Size 484.7 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
0e608871b089592b84bdac955d1a9f114607e160634a83463d9761eef1a8e08a
BLAKE2b-256 checksum
How to use checksums
5a33951388982d9b643ba0401cafe7d2ba6001a6679973b4281cd2c2f991f8ba
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.0-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL ezexb-0.1.0-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
62d8247c1a3f7b79b1d2fe05c0644c8fb93d17058df6e4f67742f339d78c286c
BLAKE2b-256 checksum
How to use checksums
03416a9602e8440e9e72ba76c573d27159dda2782dad182c702305590ca5f507
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.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL ezexb-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
Size 559.6 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e22db57ed7f9f010e1093a978c2d17f021b4eb296e25949a141de71f8b6e7db1
BLAKE2b-256 checksum
How to use checksums
674e6b96d8a419805829916a5d9007aa11c3afb2c3a6a829c08bc49726b8cf10
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.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL ezexb-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 572.8 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
30a577406255758e84b81e77fe159fd1bea49547a7537d4a888752f268ad6f79
BLAKE2b-256 checksum
How to use checksums
c997f9beb13bd5103e959989da6fa9981118e05e8dc7e95715f8f57830a8cb0e
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.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 5 files in this release have been uploaded with provenance metadata.

Select from 5 files

Attestation for ezexb-0.1.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