v0.4.10
ruviz v0.4.10
Released: 2026-04-10
Highlights
- Public static raster outputs now follow the same reference renderer across
render(), PNG export/save, andrender_to_renderer(), keeping those surfaces visually aligned. - The static raster backend picked up parity-safe CPU hot-path work for dense scatter, line, and heatmap rendering without changing the public output contract.
- Repeated uncached prepared renders in Rust and Python now reuse prepared raster geometry instead of rebuilding the full screen-space plan every time.
Version Alignment
This release keeps the published workspace packages aligned on one version:
ruviz0.4.10ruviz-web0.4.10ruviz-gpui0.4.10- npm
ruviz0.4.10 - PyPI
ruviz0.4.10
Rendering Consistency
- Public raster entrypoints now share one reference rendering policy, so
render(), PNG export/save, andrender_to_renderer()stay in lock-step instead of depending on different backend choices. - Added exact-parity diagnostics and regression coverage around the shared raster pipeline, including public-path consistency checks and internal parity guards.
- Tightened the branch’s optimized parity candidate path so it no longer uses the parallel renderer when that path would violate the reference-output tolerance.
Raster Backend Improvements
- Added parity-safe static raster hot-path optimizations for dense line, scatter, and heatmap workloads.
- Dense filled-marker scatter rendering now uses scanline blitters for
Circle,Square,Triangle, andTriangleDownmarkers, reducing CPU time while preserving the existing visual output. - Prepared renders now cache raster geometry for repeated uncached image generation, reducing setup overhead for repeated Rust and Python export calls.
Quality And Validation
This release was locally validated after the 0.4.10 version bump with:
cargo check -qbun run check:webcd python && uv run cargo testcd python && uv run python -m pytest
References
- Changelog:
CHANGELOG.md - Previous release notes:
v0.4.9 - Release workflow:
.github/workflows/release.yml