0.68.0#
Released 2026-04-09 — GitHub Release
Changes#
⚠️ Breaks#
Move Array::serialize -> ArrayPlugin::Serialize (#7348) @gatesn
Unify id creation for ScalarFns and rename is_null to vortex.is_null (#7325) @robert3005
Rework
Schemeestimation in compressor (#7230) @connortsui20block serialization for the existing aggregations (#7322) @blaginin
break[array]: remove old
vtable!macro (#7317) @joseph-isaacsClean up btrblocks compressor interface (#7274) @connortsui20
Invert the
vortex-tensordependency (#7271) @connortsui20break: apply should use
apply(self: Arc<Self>, ...)overapply(&self, ...)(#7259) @joseph-isaacsffi: expose array validity, allow creating primitive arrays (#7148) @myrrc
Pluggable Compressor (#7018) @connortsui20
array slots (#6870) @joseph-isaacs
✨ Features#
Add IsNull expression to vortex-jni (#7358) @robert3005
feat: add an arrays slots macro (#7360) @joseph-isaacs
Allow loading “foreign” plugins for UI/TUI/Serde (#7347) @gatesn
Pull out
L2Denormfrom TurboQuant (#7349) @connortsui20feat: iterative execution for most arrays in vortex-array (#7335) @joseph-isaacs
Dynamic WHT rounds in TurboQuant (#7330) @connortsui20
feat[gpu]: support mixed-width types in dynamic dispatch (#7331) @0ax1
feat: fsst inline varbin child (#7316) @joseph-isaacs
L2 Denorm expression (#7329) @connortsui20
Allow inserting non-Default values to VortexSession (#7321) @gatesn
Tensor Matchers (#7300) @connortsui20
TurboQuant encoding for Vectors (#7269) @connortsui20
Cleaner
WriteStrategyBuilderinterface (#7275) @connortsui20Fix tensor expressions and add
InnerProductexpression (#7277) @connortsui20feat: iterative execute alp/alp_rd/bitpacking (#7233) @joseph-isaacs
Support partitionBy in VortexSparkDataSource (#7218) @robert3005
Add compressor for constant nonnullable and all valid bool arrays (#7221) @robert3005
Approximate expressions for tensor types (#7226) @connortsui20
🚀 Performance#
Add inner product and cosine similarity optimizations (#7364) @connortsui20
feat: iterative execution patched array (#7345) @joseph-isaacs
Fix StructArray / StructData after migration (#7305) @gatesn
alp_rd: speedup (#7064) @joseph-isaacs
perf: speed up TryFrom
for Primitive (#7223) @joseph-isaacs feat: Introduce writeBatchFfi in Java JNI to avoid IPC serialization overhead (#7205) @JingsongLi
🐛 Bug Fixes#
17 changes
Fix patch_chunk index OOB when slicing ALP arrays mid-chunk (#7354) @abnobdoss
AVX2 take handles indices that are equal to the index type max value (#7359) @robert3005
fix[encodings]: take in progress buffer into account on fsst builder … (#7318) @asubiotto
RLE handles decompression of indices where invalid positions are clobbered (#7255) @robert3005
fix[vortex-array]: fix offset_within_chunk underflow on patches array (#7312) @asubiotto
fix: array correctly update their validity (#7307) @joseph-isaacs
Fix
TurboQuantmetadata to be protobuf (#7301) @connortsui20fix[ffi]: to and from ffi types should have a fully defined cast (#7261) @joseph-isaacs
fix: fix typo in compressor scheme (#7241) @joseph-isaacs
buffered strategy to not use eof for the final chunk (#7219) @onursatici
fix[vortex-array]: fix overflow on FSL element take indices (#7214) @asubiotto
fix[ci]: correct perms to upload back compat fixtures (#7207) @joseph-isaacs
fix: restrict wasm-bindgen to browser wasm, fixing wasip1 builds (#7208) @0ax1
📖 Documentation#
docs: add back array children docs moved from slots (#7249) @joseph-isaacs
🧰 Maintenance#
30 changes
Remove generic rle (#7350) @connortsui20
Enable clippy::clone_on_ref_ptr lint and fix all violations (#7262) @joseph-isaacs
Symlink CLAUDE.md to AGENTS.md to support other coding agents (#7333) @AdamGS
TurboQuant cleanup part 2 (#7326) @connortsui20
TurboQuant Cleanup part 1 (#7320) @connortsui20
chore(deps): update dependency vite to v6.4.2 [security] (#7303) @renovate[bot]
chore(deps): update taiki-e/cache-cargo-install-action digest to 66c9585 (#7291) @renovate[bot]
chore(deps): update actions/github-script digest to 450193c (#7290) @renovate[bot]
Correctly gate zstd (#7283) @connortsui20
chore(deps): update release-drafter/release-drafter action to v7 (#6943) @renovate[bot]
take
VortexSessionby ref (#7270) @connortsui20chore: have on demand validity and patches for array remove slot extraction (#7217) @joseph-isaacs
fix[vortex-array]: update an overflow test (#7229) @asubiotto
Move stuff around
vortex-tensor(#7225) @connortsui20Assert_arrays_eq also executes the array and compares the results against scalar_at (#7222) @robert3005
feat[array]: compositional array display logic (#7082) @joseph-isaacs
chore(deps): update codspeedhq/action digest to d872884 (#7202) @renovate[bot]
chore(deps): update taiki-e/cache-cargo-install-action digest to 511847d (#7203) @renovate[bot]