Skip to content

v0.2.0 — first PyPI release

Choose a tag to compare

@lhopkins lhopkins released this 24 Apr 15:34
· 2 commits to master since this release

First publish of rubar to crates.io (as `rubar-core`) and PyPI (as `rubar`).

Highlights

  • Workspace split: `rubar-core` (pure-Rust encoding + geometry, no PyO3) and `rubar-py` (thin PyO3 wrapper). Rust consumers can depend on `rubar-core` without pulling Python into the build.
  • GS1-128 support via the new `gs1` module. Parse `(01)12345678901234(10)BATCH` directly and emit a valid Code 128 symbol stream with FNC1 designator + separators in the right places.
  • Data Matrix (ECC 200) via the `DataMatrix` class. Plain encoding and GS1 Data Matrix both supported.
  • GS1 shape control: `DataMatrix.gs1(value, shape='square' | 'rectangular' | 'any')`. Both are valid per GS1 General Specifications; the default encoder picks smallest-area, which can surprise callers expecting the square convention.
  • Non-square matrix geometry: `MatrixGeometry` exposes `width` and `height` separately (QR stays square; Data Matrix can be rectangular).
  • PyO3 0.28.3 across the workspace.

Wheels

Binary wheels for macOS arm64 and Linux x86_64 on Python 3.11 + 3.13. Other platforms build from sdist.

Supported symbologies

Code 128, GS1-128, Code 39, UPC-A, EAN-8, ITF, QR Code, Data Matrix, GS1 Data Matrix.