Skip to content

elk-rs 0.12.1

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Oct 03:47
eb586b6

Rust fixes on Java ELK 0.12.0; upstream Java and elkjs references are unchanged.
Release tag: v0.12.1 on releases/0.12.0.

Added

  • Added the consuming layout_value JSON API and facade export for callers that already hold a serde_json::Value.
  • Added a reproducible strict full-corpus gate covering final layouts, raw intermediate geometry/topology, complete input accounting, and matching exception behavior.

Fixed

  • Fixed interactive external-port lock re-entry, including north/south traversal.
  • Implemented connected-component hull/1D compaction and corrected zero-height scanline ordering and external-port single-component placement.
  • Fixed zero-size resize division while preserving normal-size and fixed-port behavior.
  • Returned an error for unsupported cross-hierarchy edges instead of silently discarding them.
  • Removed trace-only coordinate correction, Java-zero comparison exceptions, and non-finite comparison gaps; restored trace state after errors with thread-local RAII guards.

Changed

  • Reduced JSON option/default allocation and network-simplex/order-relation work while preserving input order and fallback behavior.
  • Verified all 1,998 corpus cases: 1,997 matching layouts and one matching-exception test; all 196,407 intermediate states matched. The reference is Java 0.12.0 with three explicit fixes, not unmodified upstream Java. See strict validation.
  • Measured 26 synthetic scenarios per API against stable 0.12.0: native mean -1.54%, JSON API mean +0.02%; targeted defaults/simplex workloads improved 23.3–62.0%. See conditions, raw results, and limits.

Packages and validation

  • npm: @openedges/elk-layout@0.12.1 and six native platform packages.
  • crates.io: elk-layout@0.12.1 and 17 ELK library crates; all internal versions are pinned together.
  • GitHub assets: six NAPI binaries and a combined browser/Node.js WASM archive.
  • Rust tests: 1,081 passed, zero failed, two ignored. JS: 49/49 passed; fresh NAPI and browser WASM each matched 550/550 Java JSON results.
  • Node.js 18.0.0, 18.15.0, and 24.19.0 passed actual-tarball native/WASM direct and worker checks.
  • All 12 metadata/phase-wiring checks, 13 required performance comparisons, and eight recursive runtime budgets passed.

The Java reference remains 0.12.0. This is a published Rust patch version, so its tag is v0.12.1 on the existing releases/0.12.0 branch, as specified in VERSIONING.md.