Skip to content

v2.0.0 — first public release

Choose a tag to compare

@debug-diary-1 debug-diary-1 released this 26 Aug 03:38
· 62 commits to main since this release
aef47d9

First public release. vizcrush is a set of data primitives for browser visualization — downsampling, binning, spatial indexing, streaming aggregation — written in Rust, compiled to WebAssembly, with a pure-JS core behind the same API as a fallback and an explicitly selectable backend.

npm install @vizcrush/core @vizcrush/downsample

What is honest about the performance story

Every performance claim in this repo traces to a committed benchmark result or an ADR. Three claims did not survive that rule and were deleted rather than softened, each with a written retraction:

  • SIMD is not doing the work (ADR 0002). The +simd128 build of the downsample module is byte-identical to the scalar build — same SHA-256. Timings match at every input size.
  • WASM is not uniformly faster (ADR 0003). About 4× faster than the JS core in Chromium/V8, roughly 8× slower in Firefox at 1M points, modestly slower in WebKit. Cold start is slower than JS in every engine.
  • WebGPU compute is not a speedup here (ADR 0004). The wired bin2d GPU path measured about 15× slower than WASM end-to-end. It ships opt-in, falls back silently, and is never auto-selected.

The full story is in the launch post.

Backend selection

Automatic selection is availability-based: WASM where WebAssembly exists, the JS core otherwise, and the JS core regardless for inputs below a size threshold (default 1000), where crossing the WASM boundary costs more than it saves. Force a path with { backend: "js" } or { backend: "wasm" }. WebGPU is opt-in per call, on bin2d only.

Packages

Package Version
@vizcrush/core 2.0.0
@vizcrush/bin 1.1.0
@vizcrush/aggregate, @vizcrush/ai, @vizcrush/bin3d, @vizcrush/downsample, @vizcrush/mcp-server, @vizcrush/react, @vizcrush/spatial, @vizcrush/spatial3d, @vizcrush/transform 1.0.0

All published with SLSA provenance. Publishing uses npm trusted publishing (GitHub Actions OIDC); no long-lived tokens are stored in this repository.

Also