Repository navigation
Releases: debug-diary-1/vizcrush
Release list
vizcrush v2.2.0
Repo-level release event for the interactive streaming time-series viewport milestone. Packages version independently.
Published packages:
@vizcrush/downsample1.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/aggregate1.1.0 → 1.1.1- fixes rolling
StreamingStatsatwindowSize=1
- fixes rolling
@vizcrush/react1.0.0 → 1.0.1- fixes stale in-flight results, explicit bin-range reactivity, and streaming accumulator recreation
@vizcrush/mcp-server1.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
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/downsampleWhat 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
+simd128build 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
- 435 tests (158 Rust, 277 TypeScript), 37 examples
- 23 MCP tools via
@vizcrush/mcp-server - Docs: https://debug-diary-1.github.io/vizcrush · Book: https://debug-diary-1.github.io/vizcrush-book