Skip to content

Releases: debug-diary-1/vizcrush

vizcrush v2.2.0

Choose a tag to compare

@debug-diary-1 debug-diary-1 released this 08 Sep 06:52
1f524fe

Repo-level release event for the interactive streaming time-series viewport milestone. Packages version independently.

Published packages:

  • @vizcrush/downsample 1.0.0 → 1.1.0
    • bounded renderer-independent time-series sessions
    • persistent browser worker client/host subpaths
    • latest-request scheduling and source/request identity
    • fixed-retention streaming append with explicit ownership and backpressure
    • separate worker-processing timing and named buffer accounting
  • @vizcrush/aggregate 1.1.0 → 1.1.1
    • fixes rolling StreamingStats at windowSize=1
  • @vizcrush/react 1.0.0 → 1.0.1
    • fixes stale in-flight results, explicit bin-range reactivity, and streaming accumulator recreation
  • @vizcrush/mcp-server 1.0.0 → 1.1.0
    • publishes the hardened CLI/HTTP transport, bounded indexes and inputs, and index deletion support

The release also includes the copyable million-point Canvas workflow and adoption guide. Existing downsampling primitive signatures and global backend-selection behavior are unchanged.

Validated through repository CI and packed npm consumers in Chromium, Firefox, and WebKit. The release workflow skips all unchanged package versions and publishes through npm trusted publishing with provenance.

v2.0.0 — first public release

Choose a tag to compare

@debug-diary-1 debug-diary-1 released this 26 Aug 03:38
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