0.70.0#
Released 2026-05-01 — GitHub Release
Changes#
⚠️ Breaks#
Remove
PartialOrdimplementation forScalarValue(#7742) @connortsui20New Java Scan API (#7527) @robert3005
Make
StatsCacheandArrayAndStatshave interior mutability (#7583) @connortsui20Pass
ExecutionCtxthrough the compressor (#7578) @connortsui20break: remove deprecated methods and plumb ExecutionCtx (#7512) @joseph-isaacs
break: remove
try_fromstruct array to record batch (#7488) @joseph-isaacs
🚧 Deprecation#
deprecate: into_arrow (#7577) @joseph-isaacs
deprecate: execute_mask over to_mask (#7574) @joseph-isaacs
depreacte non compute methods without a ctx (e.g.
to_canonical) (#7473) @joseph-isaacs
✨ Features#
feat: add builder execution path with AppendChild step (#7677) @joseph-isaacs
feat: iterative execution for DateTimePartsArray (#7698) @joseph-isaacs
feat: masked array iterative execution clean up (#7690) @joseph-isaacs
feat(cuda): prefer standalone kernels in
automode (#7667) @0ax1feat: dict into parts (#7668) @joseph-isaacs
Add ability to override function behaviour via registry in VortexSession (#7588) @robert3005
feat(cuda): make GPU dispatch mode configurable (#7621) @0ax1
feat: add a runner field to all runners (#7622) @joseph-isaacs
feat(cuda): fuse narrower-than-output Dict codes and RunEnd ends (#7617) @0ax1
feat(cuda): fuse narrower-than-output Dict codes and RunEnd ends (#7603) @0ax1
Add spans in compressor for perfetto (#7607) @connortsui20
Add
tracingsupport to the compressor (#7385) @connortsui20Vector similarity search scan benchmarks (#7499) @connortsui20
GPU kernel for sorted patches with chunk_offsets (#7440) @a10y
Unify download management (#7490) @connortsui20
Add new
vector-search-benchbenchmarking crate (#7458) @connortsui20
🚀 Performance#
perf: zero copy validity export to duckdb (#7371) @joseph-isaacs
Try and improve the perf of natural file splits in DF (#7609) @AdamGS
Faster BoolArray::min_max via true_count instead of set_slices (#7599) @robert3005
perf: faster execution ctx and no opt (#7597) @joseph-isaacs
Use layout file splits when DF re-partitions individual files (#7591) @AdamGS
Implement smarter sampler (#7585) @connortsui20
Remove ScalarFnConstantRule (#7575) @robert3005
add unchecked array slot take and put (#7514) @joseph-isaacs
Propagate min/max/string length statistics to duckdb (#7416) @myrrc
Optimize L2Norm for ConstantArray (#7495) @connortsui20
fix: avoid ListView take_reduce rebuild for dense selections (#7339) @dimitarvdimitrov
perf: correctly try execute parent in the iterative child execute loop (#7386) @joseph-isaacs
perf[gpu]: reduce register pressure in dyn dispatch (#7489) @0ax1
🐛 Bug Fixes#
16 changes
Actually wire the pluggable expression convertor (#7730) @AdamGS
Fix cosine similarity optimization bug (#7724) @connortsui20
Prunning expressions can reference rowcount (#7589) @robert3005
Fix dtype mismatch in FileStatsLayoutReader for stat scalars (#7639) @brainhart
Validate zoned build (#7627) @connortsui20
Extend DType::least_supertype to cover FixedSizeList, List, and tensor extensions (#7596) @palaska
Remove
ExtensionData(#7587) @connortsui20Implement validity for Between scalar function (#7519) @robert3005
avoid including experimental encoding in footer (#7569) @a10y
Fix reduction/execute cycle (#7522) @connortsui20
Add extension constant pushdown rule and fix
InnerProductrule (#7507) @connortsui20fix: add validity no_nulls and fix usage (#7487) @joseph-isaacs
📖 Documentation#
🧰 Maintenance#
85 changes
Rename fixed shape tensor module and id (#7733) @connortsui20
Validity casting doesn’t hide usage of execution context (#7710) @robert3005
ci[gpu]: run cuda micro-benchmarks with codspeed (#7696) @0ax1
Fix java formatting (#7703) @robert3005
Java CI is self contained and writes files through java instead of rust (#7702) @robert3005
Update Rust crate daachorse to v2 (#7688) @renovate[bot]
remove SessionVar blanket impl, replace with type impls (#7695) @a10y
Update Rust crate similar to v3 (#7689) @renovate[bot]
chore: clippy deny
ref_optionandref_option_ref(#7692) @joseph-isaacsUpdate Rust crate cudarc to 0.19.0 (#7649) @renovate[bot]
Add info email (#7682) @whelanBoyd
Update benchmarks-website dependencies (#7676) @robert3005
Update dependency ray to v2.55.0 [SECURITY] - abandoned (#7629) @renovate[bot]
Update dependency concurrently to v9 (#7656) @renovate[bot]
Upgrade all vortex-web dependencies (#7669) @robert3005
Rename
ScalarValue::ListtoScalarValue::Tuple(#7672) @connortsui20Pin dependencies (#7647) @renovate[bot]
Update all patch updates (#7648) @renovate[bot]
Update dorny/paths-filter action to v4 (#7665) @renovate[bot]
Update dependency node to v24 (#7661) @renovate[bot]
Update actions/github-script action to v9 (#7652) @renovate[bot]
Update dependency com.adobe.testing:s3mock-testcontainers to v5 (#7655) @renovate[bot]
Update Rust crate zip to v8.6.0 (#7650) @renovate[bot]
Update dependency typescript to v6 (#7662) @renovate[bot]
zonedcleanup (#7634) @connortsui20Clean up
vortex-tensoreven more (#7610) @connortsui20Modify renovate config for better experience (#7605) @AdamGS
Lock file maintenance (#7526) @renovate[bot]
Bump msrv and rust-toolchain to 1.91 (and lance for benchmarks) (#7595) @AdamGS
Try and make the bot-review-action not hang and/or just fail (#7593) @AdamGS
Rename duplicated
ScalarFntypes (#7586) @connortsui20Move tensor types under
types/submodule (#7573) @connortsui20Update Rust crate sha2 to 0.11 (#7553) @renovate[bot]
Update Rust crate reqwest to 0.13.0 (#7552) @renovate[bot]
Clean up
vortex-tensor(#7525) @connortsui20Update Rust crate cudarc to 0.19.0 (#7545) @renovate[bot]
Update Rust crate uuid to v1.23.1 (#7557) @renovate[bot]
Update arrow to v19 (major) (#7559) @renovate[bot]
Update codecov/codecov-action action to v6 (#7561) @renovate[bot]
Update Rust crate zip to v8.5.1 (#7558) @renovate[bot]
Update Rust crate tokio to v1.52.1 (#7556) @renovate[bot]
Update Rust crate hashbrown to 0.17.0 (#7547) @renovate[bot]
Update Rust crate test-with to 0.16 (#7555) @renovate[bot]
Update Rust crate taffy to 0.10.0 (#7554) @renovate[bot]
Update Rust crate noodles-vcf to 0.87.0 (#7550) @renovate[bot]
Update plugin com.google.protobuf to v0.10.0 (#7546) @renovate[bot]
Update dependency org.testcontainers:junit-jupiter to v1.21.4 (#7539) @renovate[bot]
Update arrow-rs to v58.1.0 (#7531) @renovate[bot]
Update dependency com.google.guava:guava to v33.6.0-jre (#7535) @renovate[bot]
Update release-drafter/release-drafter action to v7.2.0 (#7544) @renovate[bot]
Update dependency typescript-eslint to v8.58.2 (#7542) @renovate[bot]
Update dependency typescript to ~5.9.0 (#7541) @renovate[bot]
Update dependency lucide-react to ^0.577.0 (#7538) @renovate[bot]
Update all patch updates (#7528) @renovate[bot]
Update datafusion monorepo to v53.1.0 (#7533) @renovate[bot]
Update dependency com.google.protobuf:protobuf-java to v4.34.1 (#7536) @renovate[bot]
Update dependency eslint-plugin-react-refresh to ^0.5.0 (#7537) @renovate[bot]
Update dependency com.adobe.testing:s3mock-testcontainers to v4.12.4 (#7534) @renovate[bot]
Update crate-ci/typos action to v1.45.1 (#7532) @renovate[bot]
Update storybook monorepo to v10.3.5 (#7530) @renovate[bot]
Update dependency @tanstack/react-virtual to v3.13.24 (#7529) @renovate[bot]
Revert “chore: speed up CUDA kernel compilation (#7509)” (#7511) @0ax1
Update Rust crate rand to 0.10 [SECURITY] (#7508) @renovate[bot]
skip: add a changelog deprecation label (#7492) @joseph-isaacs
Use cargo-zigbuild to link against old libc (#7480) @robert3005
Use an unsafe trait to reinterpret packed struct references as bytes (#7336) @AdamGS
Update actions/upload-artifact action to v7 (#7477) @renovate[bot]
Update actions/upload-pages-artifact action to v5 (#7476) @renovate[bot]
Update octokit/request-action action to v3 (#7479) @renovate[bot]
Update actions/setup-node action to v6 (#7475) @renovate[bot]
Update gradle/actions action to v6 (#7478) @renovate[bot]
Update actions/download-artifact action to v8 (#7474) @renovate[bot]