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
- Documentation index
- Reading, supported profiles and diagnostics
- Container and stream inspection
- Metadata, previews and stream analysis
- Rust core
- Development and releasing
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ezexb-0.1.0.tar.gz | 154.2 kB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logSecurity 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.
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 logA 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.