0.77.0#
Released 2026-07-08 — GitHub Release
Changes#
NOTE: 0.76.0 was yanked, because of a (hopefully very rare) latent correctness bug, that became much easier to hit in 0.76.0. There was a long-standing incorrect behavior in the TableStrategy writer, wherein it would not correctly propagate panics from the parallel writer subtasks. The fix was in #8672.
If you passed a stream of well-formed valid arrays straight to the builtin vortex writers, you are definitely unaffected.
If any of the following are true, you may have files that were silently truncated, in part (all versions) or in whole (0.76.0):
you had a stream of well-formed arrays, AND called
mapon thatArrayStreamwith a function that panicked on invocation, then passed the resulting stream to a builtin vortex writeryou passed a stream of malformed arrays that could have triggered a panic or assertion failure (e.g., you constructed invalid vortex arrays using unsafe/new_unchecked; to our knowledge you can’t hit this path with the safe/regular constructors)
If you believe you may have been affected by this issue, please reach out in slack: https://vortex.dev/slack
⚠️ Breaks#
FFI: replace vx_string/vx_binary with vx_view (#8668) @myrrc
Replace ToCanonical trait usages with execute (#8609) @robert3005
Remove borrowed types from FFI; fixed_size_list constructor accepts u32 (#8658) @myrrc
Remove variants module (#8643) @robert3005
Disallow the legacy global session and allowlist existing call sites (#8637) @robert3005
✨ Features#
feat(geo): add native
LineString,MultiPoint,MultiLineStringtypes (#8679) @HarukiMoriartyFFI: canonicalize array, data pointer for primitives (#8665) @myrrc
VortexSession register is public and allow_unknown takes reference (#8647) @robert3005
feat: support
ST_DWithinpushdown in vortex (#8625) @HarukiMoriartyfeat(vortex-bench): support vortex native geo types into SpatialBench, and wire into benchmark orchestrator (#8623) @HarukiMoriarty
feat(vortex-geo): add MultiPolygon extension type + WKB export for native geometry (#8608) @HarukiMoriarty
feat(vortex-bench): wire SpatialBench into the bench orchestrator (#8607) @HarukiMoriarty
🚀 Performance#
Optimize bit iteration and validity checking with SIMD popcount (#8636) @robert3005
perf: branchless mask-select for listview zip (#8264) @joseph-isaacs
🐛 Bug Fixes#
fix: TableStrategy currently hides panic in spawned column writer tasks. (#8672) @AdamGS
Grow list builders as we append elements to it (#8673) @robert3005
Fix vortex-jni local path handling, centralise logic in vortex-file (#8650) @robert3005
🧰 Maintenance#
13 changes
Consolidate benchmark SQL queries into
vortex-bench/sqldirectory (#8684) @connortsui20Direct issues to templates instead of GitHub Discussions (#8685) @connortsui20
Better error message in case of unknown encoding id (#8681) @robert3005
Hardcode constant detection into the cascading compressor (#8667) @connortsui20
Add policy-bot configuration file (#8659) @robert3005
Lock file maintenance (#8654) @renovate[bot]
Add bit iteration benchmarks (#8656) @robert3005
Lock file maintenance (#8655) @renovate[bot]
Update Rust crate cxx to v1.0.195 [SECURITY] (#8653) @renovate[bot]
bench: warm ArrayKernels before the bench loop (#8479) @joseph-isaacs
Remove execute_boolean fallback to arrow (#8644) @robert3005
Decouple optional features from pulling
vortex-filefeatures for top crate (#8642) @AdamGS