0.6.2 — 2026-08-10
Rust map hunter — scan_map_axes and scan_map_tables ported to Rust with
26× speedup, plus a new scan-maps CLI command for structural calibration map
discovery.
Added — Rust Map Hunter (_rs/src/map_hunter.rs)
scan_map_axes(26× faster) — finds all monotonically-increasing 16-bit sequences in a binary. Deduplication by containment, region offset handling, byte-order detection.scan_map_tables(26.6× faster) — pairs axes into 2D calibration tables with multi-dimension scoring.- Hybrid dispatch — map_hunter joins entropy and diff in the Rust backend.
Python
bytes.find()is still used for search (CPython's Two-Way/FASTSEARCH is faster than Rust'smemchrfor our workload). scan_map_axesandscan_map_tableswrappers inmap_hunter.pyconvert Rust tuples → Python NamedTuples transparently.
Added — CLI
openremap scan-maps— structural calibration map scanner. No manufacturer identification needed; finds RPM/load breakpoints and the rectangular data blocks that follow them.--min-score/-s— minimum table score (default 0.75)--region/-r— restrict scanning to a byte range--top/-n— number of top-scoring tables to show (default 20)--json— machine-readable JSON output- Health signal: ≥1000 axes = genuine calibration binary; <100 = likely encrypted or non-ECU.
Changed
- Version callback (
openremap --version) now shows active backend:openremap 0.6.2 (rust)oropenremap 0.6.2 (python). .gitignore— addedopenremap/*.soto block proc-macro and misc build artefact leakage into the Python package directory.