OpenRemap Docs

0.6.0 — 2026-08-09

Rust native extension with PyO3 + maturin, hybrid dispatch, and automated multi-platform wheel publishing.

Added — Rust Native Extension (_rs/)

  • PyO3 + maturin buildpyproject.toml switched from hatchling to maturin. Rust crate at openremap/_rs/ compiles as openremap._rust.
  • abi3 stable ABI — single wheel covers Python 3.10+ on each platform.
  • shannon_entropy (17.5× faster) — uses [u32; 256] fixed array instead of Python dict. No allocation in the hot path.
  • is_low_entropy — threshold check, dispatches to Rust.
  • find_changed_blocks (135× faster) — single-pass byte comparison with merge-threshold neighbourhood clustering.
  • count_unique_in_window / find_unique_context — kept in Python. CPython's bytes.find() (Two-Way substring search / FASTSEARCH) is faster than Rust's memchr::memmem for our window sizes. Rust implementations available but not dispatched by default.
  • Hybrid dispatch pattern — every accelerated function has a _py_* pure-Python reference and a Rust fast path. import openremap._rust failure falls back to Python silently. _active_backend() reports which backend is live.
  • Oracle fuzz tests — 360 entropy oracle tests + 106 diff oracle tests. Random inputs fed to both backends; asserts bit-identical output.

Added — CI/CD

  • Release workflow (.github/workflows/release.yml) — triggered on v* tags. Matrix builds for Linux (maturin + manylinux_2_34), macOS, and Windows. Publishes to PyPI via OIDC trusted publishing with skip-existing: true.
  • Test workflow (.github/workflows/ci.yml) — runs pytest across Python 3.10–3.14 on push and PR. Includes oracle fuzz tests to catch Rust ↔ Python divergence.

Changed

  • README — repositioned as "offline-first engine"; renamed "Coverage" → "Supported ECUs"; moved screenshot to bottom; added Rust acceleration mention.

Removed

  • Codecov — badge and integration removed.