[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-vortex-data--vortex":3,"tool-vortex-data--vortex":65},[4,23,32,40,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,2,"2026-04-05T10:45:23",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[17,13,20,19,18],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74913,"2026-04-05T10:44:17",[19,13,20,18],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,1,"2026-04-03T21:50:24",[20,18],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":46,"last_commit_at":55,"category_tags":56,"status":22},2234,"scikit-learn","scikit-learn\u002Fscikit-learn","scikit-learn 是一个基于 Python 构建的开源机器学习库，依托于 SciPy、NumPy 等科学计算生态，旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口，涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具，内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。\n\n对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言，scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点，让用户无需重复造轮子，只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。\n\n其核心技术亮点在于高度一致的 API 设计风格，所有估算器（Estimator）均遵循相同的调用逻辑，极大地降低了学习成本并提升了代码的可读性与可维护性。此外，它还提供了强大的模型选择与评估工具，如交叉验证和网格搜索，帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目，scikit-learn 以其稳定性、详尽的文档和活跃的社区支持，成为连接理论学习与工业级应用的最",65628,"2026-04-05T10:10:46",[20,18,14],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":10,"last_commit_at":63,"category_tags":64,"status":22},3364,"keras","keras-team\u002Fkeras","Keras 是一个专为人类设计的深度学习框架，旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。\n\n无论是刚入门的学生、专注算法的研究人员，还是需要快速落地产品的工程师，都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。\n\nKeras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码，即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性，还允许开发者根据需求自由选择：利用 JAX 或 PyTorch 的即时执行模式进行高效调试，或切换至速度最快的后端以获得最高 350% 的性能提升。此外，Keras 具备强大的扩展能力，能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群，是连接原型开发与生产部署的理想桥梁。",63927,"2026-04-04T15:24:37",[20,14,18],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":71,"readme_en":72,"readme_zh":73,"quickstart_zh":74,"use_case_zh":75,"hero_image_url":76,"owner_login":77,"owner_name":78,"owner_avatar_url":79,"owner_bio":80,"owner_company":81,"owner_location":81,"owner_email":82,"owner_twitter":81,"owner_website":83,"owner_url":84,"languages":85,"stars":125,"forks":126,"last_commit_at":127,"license":128,"difficulty_score":10,"env_os":129,"env_gpu":130,"env_ram":130,"env_deps":131,"category_tags":138,"github_topics":139,"view_count":147,"oss_zip_url":81,"oss_zip_packed_at":81,"status":22,"created_at":148,"updated_at":149,"faqs":150,"releases":170},290,"vortex-data\u002Fvortex","vortex","An extensible, state of the art columnar file format. Formerly at @spiraldb, now an Incubation Stage project at LFAI&Data, part of the Linux Foundation.","Vortex 是一个新一代列式文件格式和工具包，专为高性能数据处理场景设计。它解决了大数据领域常见的文件读写性能瓶颈问题，特别适合需要频繁读取、分析大规模结构化数据的开发者使用。\n\nVortex 在性能方面表现突出：随机读取速度比主流的 Apache Parquet 快约 100 倍，完整扫描快 10-20 倍，写入速度快 5 倍，同时保持了相近的压缩率。它采用零拷贝方式与 Apache Arrow 内存格式无缝集成，数据无需额外转换即可在不同系统间流转。架构上，Vortex 支持可插拔的编码系统、类型系统、压缩策略和布局策略，开发者可以根据具体业务需求灵活定制。\n\n作为 Linux 基金会（LF AI & Data）旗下的开源项目，Vortex 提供了 Apache-2.0 许可证，确保了代码的中立性和长期可用性。它已经支持与 Arrow、DataFusion、DuckDB、Spark、Pandas、Polars 等主流数据工具的集成，Apache Iceberg 支持也即将推出。\n\n对于需要构建高性能数据系统、处理海量数据的工程师和数据架构师来说，Vortex 是一个值得关注的选择","Vortex 是一个新一代列式文件格式和工具包，专为高性能数据处理场景设计。它解决了大数据领域常见的文件读写性能瓶颈问题，特别适合需要频繁读取、分析大规模结构化数据的开发者使用。\n\nVortex 在性能方面表现突出：随机读取速度比主流的 Apache Parquet 快约 100 倍，完整扫描快 10-20 倍，写入速度快 5 倍，同时保持了相近的压缩率。它采用零拷贝方式与 Apache Arrow 内存格式无缝集成，数据无需额外转换即可在不同系统间流转。架构上，Vortex 支持可插拔的编码系统、类型系统、压缩策略和布局策略，开发者可以根据具体业务需求灵活定制。\n\n作为 Linux 基金会（LF AI & Data）旗下的开源项目，Vortex 提供了 Apache-2.0 许可证，确保了代码的中立性和长期可用性。它已经支持与 Arrow、DataFusion、DuckDB、Spark、Pandas、Polars 等主流数据工具的集成，Apache Iceberg 支持也即将推出。\n\n对于需要构建高性能数据系统、处理海量数据的工程师和数据架构师来说，Vortex 是一个值得关注的选择。","# 🌪️ Vortex\n\n[![Build Status](https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Factions)\n[![OpenSSF Best Practices](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvortex-data_vortex_readme_43b29938ccd7.png)](https:\u002F\u002Fwww.bestpractices.dev\u002Fprojects\u002F10567)\n[![Documentation](https:\u002F\u002Fdocs.rs\u002Fvortex\u002Fbadge.svg)](https:\u002F\u002Fdocs.vortex.dev)\n[![CodSpeed Badge](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fcodspeed.io\u002Fbadge.json)](https:\u002F\u002Fcodspeed.io\u002Fvortex-data\u002Fvortex)\n[![Crates.io](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fvortex.svg)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fvortex)\n[![PyPI - Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fvortex-data)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fvortex-data\u002F)\n[![Maven - Version](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fdev.vortex\u002Fvortex-spark)](https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fdev.vortex\u002Fvortex-spark)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fvortex-data\u002Fvortex\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fvortex-data\u002Fvortex)\n\n[Join the community on Slack!](https:\u002F\u002Fvortex.dev\u002Fslack) | [Documentation](https:\u002F\u002Fdocs.vortex.dev\u002F) | [Performance Benchmarks](https:\u002F\u002Fbench.vortex.dev)\n\n## Overview\n\nVortex is a next-generation columnar file format and toolkit designed for high-performance data processing.\nIt is the fastest and most extensible format for building data systems backed by object storage. It provides:\n\n- **Blazing Fast Performance**\n  - 100x faster random access reads (vs. modern Apache Parquet)\n  - 10-20x faster scans\n  - 5x faster writes\n  - Similar compression ratios\n  - Efficient support for wide tables with zero-copy\u002Fzero-parse metadata\n\n- **Extensible Architecture**\n  - Modeled after Apache DataFusion's extensible approach\n  - Pluggable encoding system, type system, compression strategy, & layout strategy\n  - Zero-copy compatibility with Apache Arrow\n\n- **Open Source, Neutral Governance**\n  - A Linux Foundation (LF AI & Data) Project\n  - Apache-2.0 Licensed\n\n- **Integrations**\n  - Arrow, DataFusion, DuckDB, Spark, Pandas, Polars, & more\n  - Apache Iceberg (coming soon)\n\n> 🟢 **Development Status**: Library APIs may change from version to version, but we now consider\n> the file format \u003Cins>_stable_\u003C\u002Fins>. From release 0.36.0, all future releases of Vortex should\n> maintain backwards compatibility of the file format (i.e., be able to read files written by\n> any earlier version >= 0.36.0).\n\n## Key Features\n\n### Core Capabilities\n\n- **Logical Types** - Clean separation between logical schema and physical layout\n- **Zero-Copy Arrow Integration** - Seamless conversion to\u002Ffrom Apache Arrow arrays\n- **Extensible Encodings** - Pluggable physical layouts with built-in optimizations\n- **Cascading Compression** - Support for nested encoding schemes\n- **High-Performance Computing** - Optimized compute kernels for encoded data\n- **Rich Statistics** - Lazy-loaded summary statistics for optimization\n\n### Technical Architecture\n\n#### Logical vs Physical Design\n\nVortex strictly separates logical and physical concerns:\n\n- **Logical Layer**: Defines data types and schema\n- **Physical Layer**: Handles encoding and storage implementation\n- **Built-in Encodings**: Compatible with Apache Arrow's memory format\n- **Extension Encodings**: Optimized compression schemes (RLE, dictionary, etc.)\n\n## Quick Start\n\n### Installation\n\n#### Rust Crate\n\nAll features are exported through the main `vortex` crate.\n\n```bash\ncargo add vortex\n```\n\n#### Python Package\n\n```bash\nuv add vortex-data\n```\n\n#### Command Line UI (vx)\n\nFor browsing the structure of Vortex files, you can use the `vx` command-line tool.\n\n```bash\n# Install latest release\ncargo install vortex-tui --locked\n\n# Or build from source\ncargo install --path vortex-tui --locked\n\n# Usage\nvx browse \u003Cfile>\n```\n\n### Development Setup\n\n#### Prerequisites (macOS)\n\n```bash\n# Optional but recommended dependencies\nbrew install flatbuffers protobuf  # For .fbs and .proto files\nbrew install duckdb               # For benchmarks\n\n# Install Rust toolchain\ncurl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\n# or\nbrew install rustup\n\n# Initialize submodules\ngit submodule update --init --recursive\n\n# Setup dependencies with uv\nuv sync --all-packages\n```\n\n### Benchmarking\n\nUse `vx-bench` to run benchmarks comparing engines (DataFusion, DuckDB) and formats (Parquet, Vortex):\n\n```bash\n# Install the benchmark orchestrator\nuv tool install \"bench_orchestrator @ .\u002Fbench-orchestrator\u002F\"\n\n# Run TPC-H benchmarks\nvx-bench run tpch --engine datafusion,duckdb --format parquet,vortex\n\n# Compare results\nvx-bench compare --run latest\n```\n\nSee [bench-orchestrator\u002FREADME.md](bench-orchestrator\u002FREADME.md) for full documentation.\n\n### Performance Optimization\n\nFor optimal performance, we suggest using [MiMalloc](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmimalloc):\n\n```rust,ignore\n#[global_allocator]\nstatic GLOBAL_ALLOC: MiMalloc = MiMalloc;\n```\n\n## Project Information\n\n### License\n\nLicensed under the Apache License, Version 2.0.\n\n### Governance\n\nVortex is an independent open-source project and not controlled by any single company. The Vortex Project is a\nsub-project of the Linux Foundation Projects. The governance model is documented in\n[CONTRIBUTING.md](CONTRIBUTING.md) and is subject to the terms of\nthe [Technical Charter](https:\u002F\u002Fvortex.dev\u002Fcharter.pdf).\n\n### Contributing\n\nPlease **do** read [CONTRIBUTING.md](CONTRIBUTING.md) before you contribute.\n\n### Reporting Vulnerabilities\n\nIf you discover a security vulnerability, please email \u003Cvuln-report@vortex.dev>.\n\n### Trademarks\n\nCopyright © Vortex a Series of LF Projects, LLC.\nFor terms of use, trademark policy, and other project policies please see \u003Chttps:\u002F\u002Flfprojects.org>\n\n## Acknowledgments\n\nThe Vortex project benefits enormously from groundbreaking work from the academic & open-source communities.\n\n### Research in Vortex\n\n- [BtrBlocks](https:\u002F\u002Fwww.cs.cit.tum.de\u002Ffileadmin\u002Fw00cfj\u002Fdis\u002Fpapers\u002Fbtrblocks.pdf) - Efficient columnar compression\n- [FastLanes](https:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol16\u002Fp2132-afroozeh.pdf) & [FastLanes on GPU](https:\u002F\u002Fdbdbd2023.ugent.be\u002Fabstracts\u002Ffelius_fastlanes.pdf) - High-performance integer compression\n- [FSST](https:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol13\u002Fp2649-boncz.pdf) - Fast random access string compression\n- [ALP](https:\u002F\u002Fir.cwi.nl\u002Fpub\u002F33334\u002F33334.pdf) & [G-ALP](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F3736227.3736242) - Adaptive lossless floating-point compression\n- [Procella](https:\u002F\u002Fdl.acm.org\u002Fcitation.cfm?id=3360438) - YouTube's unified data system\n- [Anyblob](https:\u002F\u002Fwww.durner.dev\u002Fapp\u002Fmedia\u002Fpapers\u002Fanyblob-vldb23.pdf) - High-performance access to object storage\n- [ClickHouse](https:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol17\u002Fp3731-schulze.pdf) - Fast analytics for everyone\n- [MonetDB\u002FX100](https:\u002F\u002Fwww.cidrdb.org\u002Fcidr2005\u002Fpapers\u002FP19.pdf) - Hyper-Pipelining Query Execution\n- [Morsel-Driven Parallelism](https:\u002F\u002Fdb.in.tum.de\u002F~leis\u002Fpapers\u002Fmorsels.pdf): A NUMA-Aware Query Evaluation Format for the Many-Core Age\n- [The FastLanes File Format](https:\u002F\u002Fgithub.com\u002Fcwida\u002FFastLanes\u002Fblob\u002Fdev\u002Fdocs\u002Fspecification.pdf) - Expression Operators\n\n### Vortex in Research\n\n- [Anyblox](https:\u002F\u002Fgienieczko.com\u002Fanyblox-paper) - A Framework for Self-Decoding Datasets\n- [F3](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F3749163) - Open-Source Data File Format for the Future\n\n### Open Source Inspiration\n\n- [Apache Arrow](https:\u002F\u002Farrow.apache.org)\n- [Apache DataFusion](https:\u002F\u002Fgithub.com\u002Fapache\u002Fdatafusion)\n- [parquet2](https:\u002F\u002Fgithub.com\u002Fjorgecarleitao\u002Fparquet2) by Jorge Leitao\n- [DuckDB](https:\u002F\u002Fgithub.com\u002Fduckdb\u002Fduckdb)\n- [Velox](https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fvelox) & [Nimble](https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fnimble)\n\n#### Thanks to all contributors who have shared their knowledge and code with the community! 🚀\n","# 🌪️ Vortex\n\n[![Build Status](https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Factions)\n[![OpenSSF Best Practices](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvortex-data_vortex_readme_43b29938ccd7.png)](https:\u002F\u002Fwww.bestpractices.dev\u002Fprojects\u002F10567)\n[![Documentation](https:\u002F\u002Fdocs.rs\u002Fvortex\u002Fbadge.svg)](https:\u002F\u002Fdocs.vortex.dev)\n[![CodSpeed Badge](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fcodspeed.io\u002Fbadge.json)](https:\u002F\u002Fcodspeed.io\u002Fvortex-data\u002Fvortex)\n[![Crates.io](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fvortex.svg)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fvortex)\n[![PyPI - Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fvortex-data)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fvortex-data\u002F)\n[![Maven - Version](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fdev.vortex\u002Fvortex-spark)](https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fdev.vortex\u002Fvortex-spark)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fvortex-data\u002Fvortex\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fvortex-data\u002Fvortex)\n\n[Join the community on Slack!](https:\u002F\u002Fvortex.dev\u002Fslack) | [Documentation](https:\u002F\u002Fdocs.vortex.dev\u002F) | [Performance Benchmarks](https:\u002F\u002Fbench.vortex.dev)\n\n## 概述\n\nVortex 是一个专为高性能数据处理设计的下一代列式文件格式和工具包。它是构建对象存储支持的数据系统最快、最可扩展的格式。它提供：\n\n- **极速性能**\n  - 随机读取速度提升 100 倍（对比现代 Apache Parquet）\n  - 扫描速度提升 10-20 倍\n  - 写入速度提升 5 倍\n  - 相似的压缩比\n  - 零拷贝\u002F零解析元数据的高效宽表支持\n\n- **可扩展架构**\n  - 基于 Apache DataFusion 的可扩展方法建模\n  - 可插拔的编码系统、类型系统、压缩策略和布局策略\n  - 与 Apache Arrow 零拷贝兼容\n\n- **开源、中立治理**\n  - Linux Foundation（LF AI & Data）项目\n  - Apache-2.0 许可\n\n- **集成**\n  - Arrow、DataFusion、DuckDB、Spark、Pandas、Polars 等\n  - Apache Iceberg（即将推出）\n\n> 🟢 **开发状态**：库 API 可能会随版本变化，但现在我们认为文件格式是**稳定的**。从 0.36.0 版本开始，Vortex 的所有未来版本都将保持文件格式的向后兼容性（即能够读取任何早期版本 >= 0.36.0 写入的文件）。\n\n## 核心特性\n\n### 核心能力\n\n- **逻辑类型** - 清晰分离逻辑模式与物理布局\n- **零拷贝 Arrow 集成** - 与 Apache Arrow 数组无缝转换\n- **可扩展编码** - 带有内置优化的可插拔物理布局\n- **级联压缩** - 支持嵌套编码方案\n- **高性能计算** - 针对编码数据优化的计算内核\n- **丰富的统计信息** - 用于优化的延迟加载摘要统计\n\n### 技术架构\n\n#### 逻辑与物理设计\n\nVortex 严格分离逻辑和物理关注点：\n\n- **逻辑层**：定义数据类型和模式\n- **物理层**：处理编码和存储实现\n- **内置编码**：与 Apache Arrow 的内存格式兼容\n- **扩展编码**：优化的压缩方案（RLE、字典等）\n\n## 快速入门\n\n### 安装\n\n#### Rust Crate\n\n所有功能都通过主 `vortex` crate 导出。\n\n```bash\ncargo add vortex\n```\n\n#### Python 包\n\n```bash\nuv add vortex-data\n```\n\n#### 命令行工具（vx）\n\n要浏览 Vortex 文件的结构，可以使用 `vx` 命令行工具。\n\n```bash\n# Install latest release\ncargo install vortex-tui --locked\n\n# Or build from source\ncargo install --path vortex-tui --locked\n\n# Usage\nvx browse \u003Cfile>\n```\n\n### 开发环境设置\n\n#### 前置条件（macOS）\n\n```bash\n# Optional but recommended dependencies\nbrew install flatbuffers protobuf  # For .fbs and .proto files\nbrew install duckdb               # For benchmarks\n\n# Install Rust toolchain\ncurl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\n# or\nbrew install rustup\n\n# Initialize submodules\ngit submodule update --init --recursive\n\n# Setup dependencies with uv\nuv sync --all-packages\n```\n\n### 基准测试\n\n使用 `vx-bench` 运行比较引擎（DataFusion、DuckDB）和格式（Parquet、Vortex）的基准测试：\n\n```bash\n# Install the benchmark orchestrator\nuv tool install \"bench_orchestrator @ .\u002Fbench-orchestrator\u002F\"\n\n# Run TPC-H benchmarks\nvx-bench run tpch --engine datafusion,duckdb --format parquet,vortex\n\n# Compare results\nvx-bench compare --run latest\n```\n\n完整文档请参阅 [bench-orchestrator\u002FREADME.md](bench-orchestrator\u002FREADME.md)。\n\n### 性能优化\n\n为获得最佳性能，我们建议使用 [MiMalloc](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmimalloc)：\n\n```rust,ignore\n#[global_allocator]\nstatic GLOBAL_ALLOC: MiMalloc = MiMalloc;\n```\n\n## 项目信息\n\n### 许可证\n\n基于 Apache License, Version 2.0 许可。\n\n### 治理\n\nVortex 是一个独立的开源项目，不受任何单一公司控制。Vortex Project 是 Linux Foundation Projects 的子项目。治理模式记录在 [CONTRIBUTING.md](CONTRIBUTING.md) 中，并受 [技术宪章](https:\u002F\u002Fvortex.dev\u002Fcharter.pdf) 条款的约束。\n\n### 贡献\n\n在贡献之前，请务必阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。\n\n### 报告安全漏洞\n\n如果您发现安全漏洞，请发送邮件至 \u003Cvuln-report@vortex.dev>。\n\n### 商标\n\nCopyright © Vortex a Series of LF Projects, LLC.\n有关使用条款、商标政策和其他项目政策，请参阅 \u003Chttps:\u002F\u002Flfprojects.org>\n\n## 致谢\n\nVortex 项目极大地受益于学术界和开源社区的开创性工作。\n\n### Vortex 相关研究\n\n- [BtrBlocks](https:\u002F\u002Fwww.cs.cit.tum.de\u002Ffileadmin\u002Fw00cfj\u002Fdis\u002Fpapers\u002Fbtrblocks.pdf) - 高效列式压缩\n- [FastLanes](https:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol16\u002Fp2132-afroozeh.pdf) & [FastLanes on GPU](https:\u002F\u002Fdbdbd2023.ugent.be\u002Fabstracts\u002Ffelius_fastlanes.pdf) - 高性能整数压缩\n- [FSST](https:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol13\u002Fp2649-boncz.pdf) - 快速随机访问字符串压缩\n- [ALP](https:\u002F\u002Fir.cwi.nl\u002Fpub\u002F33334\u002F33334.pdf) & [G-ALP](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F3736227.3736242) - 自适应无损浮点压缩\n- [Procella](https:\u002F\u002Fdl.acm.org\u002Fcitation.cfm?id=3360438) - YouTube 的统一数据系统\n- [Anyblob](https:\u002F\u002Fwww.durner.dev\u002Fapp\u002Fmedia\u002Fpapers\u002Fanyblob-vldb23.pdf) - 高性能对象存储访问\n- [ClickHouse](https:\u002F\u002Fwww.vldb.org\u002Fpvldb\u002Fvol17\u002Fp3731-schulze.pdf) - 人人可用的快速分析\n- [MonetDB\u002FX100](https:\u002F\u002Fwww.cidrdb.org\u002Fcidr2005\u002Fpapers\u002FP19.pdf) - 超流水线查询执行\n- [Morsel-Driven Parallelism](https:\u002F\u002Fdb.in.tum.de\u002F~leis\u002Fpapers\u002Fmorsels.pdf)：面向多核时代的 NUMA 感知查询评估格式\n- [The FastLanes File Format](https:\u002F\u002Fgithub.com\u002Fcwida\u002FFastLanes\u002Fblob\u002Fdev\u002Fdocs\u002Fspecification.pdf) - 表达式运算符\n\n### Vortex 在研究中的应用\n\n- [Anyblox](https:\u002F\u002Fgienieczko.com\u002Fanyblox-paper) - 自解码数据集框架（A Framework for Self-Decoding Datasets）\n- [F3](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fpdf\u002F10.1145\u002F3749163) - 面向未来的开源数据文件格式\n\n### 开源项目灵感\n\n- [Apache Arrow](https:\u002F\u002Farrow.apache.org)\n- [Apache DataFusion](https:\u002F\u002Fgithub.com\u002Fapache\u002Fdatafusion)\n- [parquet2](https:\u002F\u002Fgithub.com\u002Fjorgecarleitao\u002Fparquet2) - 由 Jorge Leitao 开发\n- [DuckDB](https:\u002F\u002Fgithub.com\u002Fduckdb\u002Fduckdb)\n- [Velox](https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fvelox) 和 [Nimble](https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fnimble)\n\n#### 感谢所有与社区分享知识和代码的贡献者！🚀","# Vortex 快速上手指南\n\nVortex 是一个高性能列式文件格式和工具包，专为基于对象存储的数据系统设计。\n\n## 环境准备\n\n### 系统要求\n\n- **操作系统**：macOS（Linux\u002FWindows 暂未详细说明）\n- **Rust 工具链**：1.70+ 版本\n\n### 前置依赖\n\n```bash\n# 安装 Rust（如果尚未安装）\ncurl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\n# 或使用 Homebrew\nbrew install rustup\n\n# 可选依赖（推荐）\nbrew install flatbuffers protobuf duckdb\n```\n\n### 项目初始化\n\n```bash\n# 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex.git\ncd vortex\n\n# 初始化子模块\ngit submodule update --init --recursive\n\n# 同步依赖\nuv sync --all-packages\n```\n\n---\n\n## 安装步骤\n\n### Rust 项目\n\n```bash\ncargo add vortex\n```\n\n### Python 包\n\n```bash\nuv add vortex-data\n```\n\n### 命令行工具（vx）\n\n用于浏览 Vortex 文件结构：\n\n```bash\n# 安装最新发布版本\ncargo install vortex-tui --locked\n\n# 或从源码构建\ncargo install --path vortex-tui --locked\n```\n\n---\n\n## 基本使用\n\n### 命令行浏览文件\n\n```bash\nvx browse \u003Cfile>\n```\n\n### Python 使用示例\n\n```python\nimport vortex\n\n# 读取 Vortex 文件\narr = vortex.read(\"data.vortex\")\n\n# 转换为 Arrow 格式（零拷贝）\narrow_array = arr.to_arrow()\n\n# 写入 Vortex 文件\nvortex.write(arrow_array, \"output.vortex\")\n```\n\n### Rust 使用示例\n\n```rust\nuse vortex::Array;\n\nfn main() {\n    \u002F\u002F 读取 Vortex 文件\n    let arr = vortex::read(\"data.vortex\").unwrap();\n    \n    \u002F\u002F 转换为 Arrow 格式\n    let arrow_arr = arr.to_arrow().unwrap();\n}\n```\n\n### 性能优化\n\n在 `Cargo.toml` 中添加 MiMalloc 分配器：\n\n```toml\n[dependencies]\nmimalloc = { version = \"0.1\", default-features = false }\n```\n\n在代码中启用：\n\n```rust,ignore\n#[global_allocator]\nstatic GLOBAL_ALLOC: MiMalloc = MiMalloc;\n```\n\n---\n\n## 运行基准测试\n\n```bash\n# 安装基准测试工具\nuv tool install \"bench_orchestrator @ .\u002Fbench-orchestrator\u002F\"\n\n# 运行 TPC-H 基准测试\nvx-bench run tpch --engine datafusion,duckdb --format parquet,vortex\n\n# 对比结果\nvx-bench compare --run latest\n```\n\n---\n\n## 相关资源\n\n- 官方文档：https:\u002F\u002Fdocs.vortex.dev\u002F\n- 性能基准：https:\u002F\u002Fbench.vortex.dev\n- 社区交流：https:\u002F\u002Fvortex.dev\u002Fslack","一家中型电商平台的数据工程师小张，负责构建用户行为分析系统，每天需要处理数十亿条用户点击、浏览、购买日志，并支持运营团队的实时查询和机器学习团队的离线特征提取。\n\n### 没有 vortex 时\n\n- **查询等待时间长**：运营团队查询\"过去7天北京地区用户购买转化率\"这样的常见分析，需要等待 3-5 分钟，因为 Parquet 文件扫描太慢，团队经常抱怨\"查个数据比写代码还慢\"\n- **随机采样困难**：机器学习团队需要从海量日志中随机抽取特定用户的行为序列做特征工程，但 Parquet 的随机访问性能差，抽取 10 万用户数据要耗时 15 分钟以上\n- **宽表性能瓶颈**：用户行为日志包含 200+ 字段（商品信息、用户画像、上下文等），Parquet 对这种超宽表的元数据解析效率很低，每次打开文件都要重新扫描 schema\n- **存储成本高**：虽然 Parquet 压缩率尚可，但为了加速查询不得不额外创建多个物化视图或索引，存储成本居高不下\n- **集成繁琐**：需要先将 Parquet 转为 Arrow 格式才能给 DataFusion 或 Polars 使用，数据转换过程既耗时又容易出错\n\n### 使用 vortex 后\n\n- **查询秒级响应**：相同查询在 vortex 下只需 2-3 秒即可返回结果，运营团队可以快速迭代分析思路，实时探索数据规律\n- **极速随机访问**：随机抽取 10 万用户行为数据只需 10 秒左右，比之前快了近 100 倍，机器学习团队的特征工程效率大幅提升\n- **宽表零元数据开销**：vortex 的零拷贝元数据机制让 200+ 字段的宽表文件打开几乎无延迟，团队不再需要为不同分析场景拆分文件\n- **压缩与性能兼得**：在保持与 Parquet 相当压缩率的同时，扫描和写入速度提升 10-20 倍，存储成本显著降低\n- **无缝现代数据栈**：原生支持 Arrow 零拷贝读取，直接对接 DataFusion、Spark、Pandas、Polars，消除格式转换的繁琐和错误风险\n\nvortex 让海量用户行为数据的分析从\"等待几分钟\"变成\"秒级响应\"，真正释放了数据的实时价值。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvortex-data_vortex_aa3f3d57.png","vortex-data","Vortex","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fvortex-data_ee1cc0a7.png","Vortex is an extensible, state-of-the-art columnar format meant to replace Apache Parquet. Formerly at @spiraldb, now part of the Linux Foundation.",null,"info@vortex.dev","https:\u002F\u002Fvortex.dev","https:\u002F\u002Fgithub.com\u002Fvortex-data",[86,90,94,98,102,106,110,114,118,122],{"name":87,"color":88,"percentage":89},"Rust","#dea584",83.1,{"name":91,"color":92,"percentage":93},"Cuda","#3A4E3A",7.2,{"name":95,"color":96,"percentage":97},"Python","#3572A5",3.8,{"name":99,"color":100,"percentage":101},"Java","#b07219",2.8,{"name":103,"color":104,"percentage":105},"C++","#f34b7d",1.1,{"name":107,"color":108,"percentage":109},"JavaScript","#f1e05a",0.9,{"name":111,"color":112,"percentage":113},"C","#555555",0.7,{"name":115,"color":116,"percentage":117},"CSS","#663399",0.2,{"name":119,"color":120,"percentage":121},"Shell","#89e051",0.1,{"name":123,"color":124,"percentage":121},"CMake","#DA3434",2836,144,"2026-04-04T22:15:52","Apache-2.0","Linux, macOS, Windows","未说明",{"notes":132,"python":130,"dependencies":133},"Vortex 是一个 Rust 编写的列式文件格式工具，主要依赖 Rust 工具链进行开发。Python 包可通过 pip 或 uv 安装。README 中未明确说明 GPU、内存和 Python 版本的具体需求。建议使用 uv 作为 Python 包管理工具。可选依赖包括：flatbuffers 和 protobuf（用于 .fbs 和 .proto 文件处理），duckdb（用于性能基准测试）。性能优化方面可考虑使用 MiMalloc 内存分配器。",[134,135,136,137],"Rust toolchain","flatbuffers (可选)","protobuf (可选)","duckdb (可选)",[18],[140,141,142,143,144,145,146],"array","arrow","compression","python","rust","file","multimodal",7,"2026-03-27T02:49:30.150509","2026-04-06T05:19:24.612706",[151,156,161,166],{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},962,"读取 Vortex 数据时出现 \"range end index out of range\" 错误如何解决？","该问题可能是由于 Vortex 库版本过旧导致的兼容性问题。解决方案是将 Vortex 升级到 0.52.1 或更高版本。根据用户反馈，在 vortex 0.52.1 版本中该问题已得到修复。","https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fissues\u002F4466",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},963,"ALP 解压缩时出现 \"Can't patch a non-nullable validity with nullable validity\" 错误如何修复？","这是 ALP 解压缩逻辑中的一个 bug，当尝试用 nullable validity 的 patches 去修补 non-nullable validity 的基础数组时会触发。该问题已在 PR #6174 中修复，需要更新到包含该修复的版本。","https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fissues\u002F5766",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},964,"VarBinViewArray 在 mask 操作中出现 validity 不匹配错误怎么解决？","该问题是在 struct cast 过程中尝试添加 non-nullable 字段到已存在的 nullable 字段时发生的类型不兼容错误。这是一个 fuzzing 发现的 bug，需要等待官方修复。","https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fissues\u002F6048",{"id":167,"question_zh":168,"answer_zh":169,"source_url":165},965,"构造 decimal Scalar 时出现 \"Incompatible dtype\" 错误如何处理？","这是 decimal 类型不兼容的问题，错误信息显示尝试将 decimal256 类型的值赋值给 decimal(76,75) 或 decimal(76,-74) 等不兼容的类型。这是一个 fuzzing 发现的 bug，需要等待官方修复。",[171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266],{"id":172,"version":173,"summary_zh":174,"released_at":175},100591,"0.67.0","## Changes\r\n\r\n## ✨ Features\r\n\r\n* feat: Java Bindings for FixedSizeList (#7188) @JingsongLi\r\n* feat: make dispatch plan dynamically sized (#7186) @0ax1\r\n* Add tsan for vortex-ffi, fix asan instrumentation (#7157) @myrrc\r\n* Upgrade to DataFusion 53 (#6740) @AdamGS\r\n\r\n## 🚀 Performance\r\n\r\n* Cache python class imports (#7191) @AdamGS\r\n* Specialize export of chunked list arrays (#7180) @AdamGS\r\n* Filter indices without an iterator for Bool (#7176) @AdamGS\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* Make sure all tokio runtime propegate observability in the same way (#7193) @AdamGS\r\n* fix: vortex-cxx test race (#7189) @0ax1\r\n* fix: support total_size=0 in byte_range_to_row_range (#7115) @aalexandrov\r\n\r\n## 📖 Documentation\r\n\r\n* feat: teach docs about object store (#7169) @danking\r\n\r\n## 🧰 Maintenance\r\n\r\n\u003Cdetails>\r\n\u003Csummary>12 changes\u003C\u002Fsummary>\r\n\r\n* Python benchmarks script and  re-organize dev dependencies (#7192) @AdamGS\r\n* move BitPacked slice from kernel -> parent reduce (#7195) @a10y\r\n* Unify benchmark dispatch into a workflow (#7178) @AdamGS\r\n* Run TPC-H SF 100 nightly on Vortex (#7184) @AdamGS\r\n* Array VTables Migration 3 (#7185) @gatesn\r\n* scalar_at take execution_ctx (#7166) @a10y\r\n* Array VTables Migration 2 (#7183) @gatesn\r\n* chore[gpu]: split plan into unmaterialized \u002F materialized (#7175) @0ax1\r\n* Array VTables Migration 1b (#7182) @gatesn\r\n* Array VTables Migration 1a (#7181) @gatesn\r\n* Upgrade fsst-rs to 0.5.9 (#7177) @AdamGS\r\n* make Mimalloc opt-in for ffi (#7179) @myrrc\r\n\u003C\u002Fdetails>\r\n","2026-03-30T12:02:01",{"id":177,"version":178,"summary_zh":179,"released_at":180},100592,"0.66.0","## Changes\r\n\r\n## ⚠️ Breaks\r\n\r\n* Make vortex-scan just the Scan API (#7163) @gatesn\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* Shade jackson in vortex-jni and vortex-spark and avoid scala version conflicts (#7168) @robert3005\r\n* spark: pass format options into reader (#7160) @a10y\r\n\r\n## 📖 Documentation\r\n\r\n* Expand execution docs (#7158) @AdamGS\r\n\r\n## 🧰 Maintenance\r\n\r\n\u003Cdetails>\r\n\u003Csummary>4 changes\u003C\u002Fsummary>\r\n\r\n* fix path for javadoc CI (#7173) @a10y\r\n* Fix docs deploy after java changes (#7170) @robert3005\r\n* fix: dyn dispatch requires same bit width types (#7164) @0ax1\r\n* Add storybook for component development (#7162) @gatesn\r\n\u003C\u002Fdetails>\r\n","2026-03-26T12:52:44",{"id":182,"version":183,"summary_zh":184,"released_at":185},100593,"0.65.0","## Changes\r\n\r\n## ⚠️ Breaks\r\n\r\n* Remove BitBuffer::into_mut and require callers to handle failure to acquire unique ownership (#7136) @robert3005\r\n* Update DeltaArray to always pad values to 1024 elements and use bit transpose functions (#7007) @robert3005\r\n\r\n## ✨ Features\r\n\r\n* Add web UI (#7151) @gatesn\r\n* feat[vortex-datafusion]: use PartitionedFile instead of path in create_reader (#7156) @asubiotto\r\n* Part 2 of making Variant a canonical array (#7143) @AdamGS\r\n* feat[array]: use transmute for up\u002Fdown cast of Arc\u003CArray> (#7140) @joseph-isaacs\r\n* feat[array]: change VTable execution to pass owned arrays (#6867) @joseph-isaacs\r\n* feat(cuda): hybrid GPU dispatch - fuse dyn + standalone kernels (#7127) @0ax1\r\n* default mimalloc for vortex-python wheels (#7096) @onursatici\r\n* feat(cuda): add `SEQUENCE` source op to dyn dispatch (#7078) @0ax1\r\n* Vector Extension Type (#6964) @connortsui20\r\n* Canonical variant array (#7026) @AdamGS\r\n* IsSorted AggregateFn (#7029) @gatesn\r\n* IsConstant Aggregate Function (#7028) @gatesn\r\n* MinMax AggregateFn (#7006) @gatesn\r\n* Variant DType (#6912) @AdamGS\r\n* feat[back-compat]: Add a script to upload fixtures to a repo (#6993) @joseph-isaacs\r\n* NanCount AggregateFn (#7003) @gatesn\r\n* Cut over sum aggregate function (#6910) @gatesn\r\n* feat[compat-gen]: add `expected_encodings` to validate fixture construction (#6978) @joseph-isaacs\r\n\r\n## 🚀 Performance\r\n\r\n* do not validate already valid arrow varbin arrays (#7089) @onursatici\r\n* perf[fsst]: like pushdown using a dfa (#6935) @joseph-isaacs\r\n* Decimal sum uses smallest physical type that supports output dtype (#7008) @robert3005\r\n* perf: skip allocation for prim cast if possible (#6997) @0ax1\r\n* Faster true count using AVX2 and AVX512 instructions (#6931) @robert3005\r\n\r\n## 🐛 Bug Fixes\r\n\r\n\u003Cdetails>\r\n\u003Csummary>23 changes\u003C\u002Fsummary>\r\n\r\n* fix(python): cap substrait-python before 0.29.0 (#7161) @RealXuChe\r\n* fix(python): cap substrait below 0.85.0 (#7153) @RealXuChe\r\n* fill_forward_nulls resets at 1024 chunk boundary (#7149) @robert3005\r\n* Support reading SparseArray with non zero offset (#7150) @robert3005\r\n* fix: remove nested `block_on` call in `cuda_execute` (#7147) @0ax1\r\n* Revert \"fix: disambiguate array ops files\" (#7138) @joseph-isaacs\r\n* fix: disambiguate array ops files (#7137) @0ax1\r\n* fix[delta]: compress with nulls undef values use last valid value (or 0) (#7124) @joseph-isaacs\r\n* fix fuzzer issue #7074 (#7077) @joseph-isaacs\r\n* fix[back-compat]: use superset not subset in the check mod (#7075) @joseph-isaacs\r\n* fix[scalar_fns]: add correct pre-condition checks for all custom pushdown (#6977) @joseph-isaacs\r\n* Sum aggregate doesn't include nan values (#7009) @robert3005\r\n* Fix scalar partial ordering comparison (#6999) @connortsui20\r\n* fix: compat script (#7024) @joseph-isaacs\r\n* fix[compat]: Update the action to use the correct check command (#7016) @joseph-isaacs\r\n* Add backwards compatibly handling of sum stats of extension types (#7014) @AdamGS\r\n* fix[vortex-array]: handle lazily sliced REE to_arrow (#7011) @asubiotto\r\n* Check for overflow in decimal sum (#7005) @gatesn\r\n* fix[vortex-array]: fix rebuild_trim_elements overflow (#6995) @asubiotto\r\n* fix: Zstd canonicalize with >2GB decompressed buffers (#6989) @SumedhArani\r\n* Sparse followup (#6980) @connortsui20\r\n* fix[sparse]: correctly handle cast for all-patched (#6979) @joseph-isaacs\r\n* fix[duckdb]: build cpp.rs only if changed (#6951) @joseph-isaacs\r\n\u003C\u002Fdetails>\r\n\r\n## 📖 Documentation\r\n\r\n\u003Cdetails>\r\n\u003Csummary>4 changes\u003C\u002Fsummary>\r\n\r\n* Update vtables docs regarding forwarding from erased to typed (#7134) @gatesn\r\n* docs: clarify GPU dispatch flow (#7132) @0ax1\r\n*  More detailed docs on `ScalarFnVTable` (#7027) @connortsui20\r\n* Add high-level docs to `vortex-btrblocks` (#6984) @connortsui20\r\n\u003C\u002Fdetails>\r\n\r\n## 🧰 Maintenance\r\n\r\n\u003Cdetails>\r\n\u003Csummary>55 changes\u003C\u002Fsummary>\r\n\r\n* chore[array]: iterative execute method p1 (#6860) @joseph-isaacs\r\n* fix fuzz_report script (#7141) @a10y\r\n* Cleanup fastlanes encodings crate (#7118) @robert3005\r\n* Testing FFI from C side (#7126) @myrrc\r\n* chore[release]: add compat-gen-upload to release  (#7067) @joseph-isaacs\r\n* chore(deps): lock file maintenance (#7121) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update datafusion monorepo to v52.4.0 (#7120) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update all patch updates (#7119) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update taiki-e\u002Fcache-cargo-install-action digest to 1ce845d (#7117) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update codspeedhq\u002Faction digest to 1c8ae48 (#7116) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* Only pass vtable once via ExtDType\u003CV> (#7105) @gatesn\r\n* Function to return vtable from an array (#7085) @gatesn\r\n* chore(deps): lock file maintenance (#7088) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* Remove `vortex-test-e2e` (#7102) @connortsui20\r\n* bump aws-lc-rs to c","2026-03-25T17:18:57",{"id":187,"version":188,"summary_zh":189,"released_at":190},100594,"0.64.0","## Changes\r\n\r\n## ⚠️ Breaks\r\n\r\n* Remove all_valid\u002Fall_invalid from Validity (#6926) @gatesn\r\n* Rename Array VTables (#6907) @gatesn\r\n\r\n## ✨ Features\r\n\r\n* Type Coercion (#6960) @gatesn\r\n* feat: aligned chunked pair iter (#6777) @joseph-isaacs\r\n* Add bit transpose operations (#6928) @robert3005\r\n* Add support for nulls and unsigned integers through Arrow Datasets (#6908) @AdamGS\r\n\r\n## 🚀 Performance\r\n\r\n* CaseWhen uses forward pass with a remaining mask (#6804) @palaska\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* Suppress -Wtype-limits warning in DuckDB C++ compilation (#6957) @joseph-isaacs\r\n* Fix struct cast panic in rule and add tests (#6962) @connortsui20\r\n* Fix `bitwise_unary_op` (#6940) @connortsui20\r\n* fixup fuzzer message (#6936) @joseph-isaacs\r\n* Restore some missing data from benchmarks (#6914) @AdamGS\r\n* Improve URL parsing in VortexMultiFileScan to handle file paths more … (#6842) @iceboundrock\r\n* Fix empty zctl flag (#6891) @connortsui20\r\n\r\n## 📖 Documentation\r\n\r\n* docs: mirco-benchmarks best practices (#6922) @0ax1\r\n* More detailed fuzzer report template (#6888) @connortsui20\r\n\r\n## 🧰 Maintenance\r\n\r\n\u003Cdetails>\r\n\u003Csummary>25 changes\u003C\u002Fsummary>\r\n\r\n* chore(deps): update docker\u002Fsetup-qemu-action action to v4 (#6948) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update docker\u002Fsetup-buildx-action action to v4 (#6947) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update docker\u002Fbuild-push-action action to v7 (#6945) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update docker\u002Flogin-action action to v4 (#6946) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update github artifact actions to v7 (major) (#6942) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update plugin net.ltgt.errorprone to v5 (#6950) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): lock file maintenance (#6944) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* more succinct benchmark summaries (#6959) @lwwmanning\r\n* chore(deps): update taiki-e\u002Fcache-cargo-install-action digest to 24c4eaa (#6930) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* back compat test (#6917) @joseph-isaacs\r\n* chore[ci]: add `like` bench (#6934) @joseph-isaacs\r\n* Fix imports in fuzz module (#6927) @connortsui20\r\n* Add FixedSizedList to Arbitrary DType implementation (#6925) @robert3005\r\n* Minify Duckdb build script (#6921) @myrrc\r\n* Run benchmarks on object storage more times (#6920) @AdamGS\r\n* Better noise signal for benchmarks (#6899) @AdamGS\r\n* chore: minor C++ cleanups (#6913) @0ax1\r\n* chore(deps): lock file maintenance (#6918) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update rust crate bit-vec to 0.9.0 (#6916) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update release-drafter\u002Frelease-drafter action to v6.4.0 (#6915) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* Trying some more benchmarking noise reduction things (#6901) @AdamGS\r\n* chore(deps): update all patch updates (#6846) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* Add FSST URL compare benchmark with ClickBench-style data (#6906) @joseph-isaacs\r\n* chore: suppress warnings from DuckDB headers (#6909) @0ax1\r\n* chore[fuzz]: more jobs (#6879) @joseph-isaacs\r\n\u003C\u002Fdetails>\r\n","2026-03-16T10:35:02",{"id":192,"version":193,"summary_zh":194,"released_at":195},100595,"0.63.0","## What's Changed\r\n* Aggregates: accumulate columnar by @gatesn in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6839\r\n* Add a UUID extension type by @connortsui20 in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6832\r\n* move stuff around in `vortex-tensor` by @connortsui20 in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6857\r\n* chore[ci]: enable cuda build+lint by @joseph-isaacs in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6861\r\n* Configure benchmark boxes to try and reduce noise by @AdamGS in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6745\r\n* feat[gpu]: slice support for dyn dispatch by @0ax1 in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6862\r\n* Extension Array Cleanup by @connortsui20 in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6869\r\n* Reducing lock contention around expression partition caches by @AdamGS in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6871\r\n* perf[runend]: run_end_bool decompress by @joseph-isaacs in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6229\r\n* fix[ci]: sccache longer timout by @joseph-isaacs in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6875\r\n* perf[buffer]: faster buffer iterator by @joseph-isaacs in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6876\r\n* Fix fuzzer incorrect mask application by @myrrc in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6877\r\n* chore[ci]: re-enable cuda tests by @joseph-isaacs in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6878\r\n* Move fuzzer logging to debug by @myrrc in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6881\r\n* fix[ci]: use correct protoc by @joseph-isaacs in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6884\r\n* Use unaligned bit buffer iterators where possible by @robert3005 in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6880\r\n* Change benchmark display order by @AdamGS in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6883\r\n* chore: compile with C++ 20 by @0ax1 in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6889\r\n* Remove ExtDTypeInner by @gatesn in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6874\r\n* Remove ScalarFnInner by @gatesn in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6897\r\n* chore: trim micro-bench input sizes by @0ax1 in https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fpull\u002F6890\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fvortex-data\u002Fvortex\u002Fcompare\u002F0.62.0...0.63.0","2026-03-11T16:51:26",{"id":197,"version":198,"summary_zh":199,"released_at":200},100596,"0.62.0","## Changes\r\n\r\n## ⚠️ Breaks\r\n\r\n* feat: Iterative Execution (#6824) @joseph-isaacs\r\n* Public array modules (#6834) @gatesn\r\n* Layout readers don't need a mutable context (#6808) @robert3005\r\n* Rename Array -> DynArray (#6760) @gatesn\r\n* Add a `VortexSession` for scalar value deserialization (#6772) @connortsui20\r\n\r\n## ✨ Features\r\n\r\n* Duckdb 1.5-variegata (#6627) @myrrc\r\n* Aggregates: ChunkedArray kernel (#6837) @gatesn\r\n* Vortex Fixed-Shape Tensor (#6812) @connortsui20\r\n* feat[vortex-runend]: handle canonicalizing Ree\u003CUtf8> (#6788) @asubiotto\r\n* Aggregate Fns (#6721) @gatesn\r\n* feat[vortex-array]: support converting arrow REE dtype to vortex (#6784) @asubiotto\r\n* feat[expr]: N-ary CASE WHEN expression (#6786) @lukekim\r\n* gpu scan cli convert subcommand (#6704) @onursatici\r\n* Vortex TUI web (#6774) @gatesn\r\n\r\n## 🚀 Performance\r\n\r\n* gpu: transpose patches faster (#6829) @a10y\r\n* perf: bypass async I\u002FO pipeline for in-memory buffer reads (#6813) @0ax1\r\n* Canonical::empty creates arrays directly instead of going through builders (#6805) @robert3005\r\n* perf: faster sequence array decompress (#6809) @joseph-isaacs\r\n* perf: ensure that `into_array` is used for owned specific arrays (#6795) @joseph-isaacs\r\n* fix[ci]: run slow test in parallel (#6776) @joseph-isaacs\r\n* data parallel patching for FastLanes (#6708) @a10y\r\n* Fast path append_to_builder ConstantArray (#6767) @palaska\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* duckdb: read from local path, correct err on invalid path (#6851) @myrrc\r\n* use full column set on empty projection list in duckdb (#6831) @myrrc\r\n* fix: don't commit to case when binary format (#6806) @joseph-isaacs\r\n* fix[layout]: add required ALLOWED_ENCODINGS to `WriteStrategyBuilder` (#6792) @joseph-isaacs\r\n* fix[layout]: canonical validity in compressor (#6797) @joseph-isaacs\r\n* fix[ci]: duckdb download retry logic (#6791) @joseph-isaacs\r\n* fix: cuda scan requires tokio (#6779) @joseph-isaacs\r\n* fix: listview size & offset ptype mismatch (#6775) @0ax1\r\n\r\n## 📖 Documentation\r\n\r\n* add brief docs to the layouts (#6814) @connortsui20\r\n\r\n## 🧰 Maintenance\r\n\r\n\u003Cdetails>\r\n\u003Csummary>24 changes\u003C\u002Fsummary>\r\n\r\n* Fix projection pushdown SLT test (#6850) @AdamGS\r\n* Add TPC-H to sqllogictests (#6830) @AdamGS\r\n* chore(deps): update datafusion monorepo to v52.2.0 (#6847) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update taiki-e\u002Fcache-cargo-install-action digest to 414f3dc (#6845) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update codspeedhq\u002Faction digest to 281164b (#6844) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* Use execute where possible (#6835) @gatesn\r\n* AggregateFn naming (#6828) @gatesn\r\n* chore[ci]: disable CUDA test (temp) codspeed new runner (#6826) @joseph-isaacs\r\n* Engine specific SLT (#6822) @AdamGS\r\n* Log which FS is used in DuckDB as debug (#6821) @AdamGS\r\n* chore: switch over codspeed runner (#6819) @joseph-isaacs\r\n* chore[ci]: use optional runs-on and also use runner by name (#6818) @joseph-isaacs\r\n* ignore CUDA tests when cuda not available (#6796) @AdamGS\r\n* Remove reuse lint check (#6810) @connortsui20\r\n* perf: faster sequence array decompress iter (#6816) @joseph-isaacs\r\n* chore[benchmark-website]: point to new benchmark bucket (#6801) @joseph-isaacs\r\n* chore[ci]: smaller instances (#6807) @joseph-isaacs\r\n* chore[ci]: smaller instances (#6803) @joseph-isaacs\r\n* Branchless decimal sum (#6793) @AdamGS\r\n* chore[ci]: Enable SPOT for cuda jobs (#6802) @joseph-isaacs\r\n* chore[fuzz]: run issue closer every night (#6790) @joseph-isaacs\r\n* chore: ci bump machine types (#6794) @joseph-isaacs\r\n* chore: simplify bit-unpack CUDA generator (#6781) @0ax1\r\n* chore: cast remove to_canonical (#6768) @joseph-isaacs\r\n\u003C\u002Fdetails>\r\n","2026-03-09T16:58:25",{"id":202,"version":203,"summary_zh":204,"released_at":205},100597,"0.61.0","## Changes\r\n\r\n## ⚠️ Breaks\r\n\r\n* break: zip arg (mask, true, false) (#6766) @joseph-isaacs\r\n* break: remove all compute public functions (#6752) @joseph-isaacs\r\n* clean up numeric compute (#6593) @joseph-isaacs\r\n* Remove deprecated to_arrow compute (#6730) @gatesn\r\n* Remove &dyn Array call sites (#6725) @gatesn\r\n* Make ExecutionArgs a dyn trait (#6715) @gatesn\r\n* Inline visitor vtable to ArrayVTable (#6700) @gatesn\r\n* Inline BaseArrayVTable (#6697) @gatesn\r\n\r\n## ✨ Features\r\n\r\n* rwlock instead of mutex around encoding ids (#6720) @danking\r\n* Make the constant metadata a `Scalar` (#6751) @connortsui20\r\n* feat: remove to canonical p2 (#6742) @joseph-isaacs\r\n* Improve benchmark output formatting (#6744) @AdamGS\r\n* vortex read at for pooled cuda reads (#6675) @onursatici\r\n\r\n## 🚀 Performance\r\n\r\n* unsafe Scalar::struct_unchecked in scalar_at vtable (#6741) @palaska\r\n* Implement BetweenReduceRule for ConstantArray (#6695) @robert3005\r\n* Remove unnecessary to_canonical in DictArray::take (#6686) @palaska\r\n* Eliminate redundant decompressions in VarBinArray canonicalization (#6692) @palaska\r\n* Remove unnecessary to_canonical in ChunkedArray filter_indices (#6688) @palaska\r\n* separate in_memory vs file coalescing config (#6690) @onursatici\r\n* Remove to_canonical from MaskedArray::take (#6689) @palaska\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* Make sequence metadata in-memory + clean up (#6759) @connortsui20\r\n* fix: CUDA bitpacking bench build (#6750) @0ax1\r\n* fix[util]: add balanced reduce iterator (#6737) @joseph-isaacs\r\n* Fix S3 globbing for duckdbfs with httplib (#6709) @myrrc\r\n* Fix old extension scalar logic (#6701) @connortsui20\r\n\r\n## 📖 Documentation\r\n\r\n* VTable Unification Docs (#6735) @gatesn\r\n\r\n## 🧰 Maintenance\r\n\r\n\u003Cdetails>\r\n\u003Csummary>22 changes\u003C\u002Fsummary>\r\n\r\n* chore: replace Buffer::copy_from with Buffer::from_iter for improved performance (#6749) @SYaoJun\r\n* Remove unused BitView (#6763) @gatesn\r\n* Remove sparse metadata prost wrapper (#6761) @connortsui20\r\n* Parallelize slow CUDA tests (#6746) @joseph-isaacs\r\n* Add explain feature to DF benchmarks (#6683) @AdamGS\r\n* chore: build, test and lint all CUDA crates on CI (#6743) @0ax1\r\n* test: Enhance tests for RLE and PCO casting: add assertions for dtype… (#6726) @SYaoJun\r\n* chore: remove to_canonical types p1 (#6738) @joseph-isaacs\r\n* chore(deps): update dependency ray to v2.54.0 [security] (#6633) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* fix(deps): update junit-framework monorepo to v6.0.3 (#6733) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update crate-ci\u002Ftypos action to v1.44.0 (#6734) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* fix(deps): update dependency ch.qos.logback:logback-classic to v1.5.32 (#6732) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update rust crate moka to v0.12.14 (#6731) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update all patch updates (#6728) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update rust crate wasm-bindgen-futures to v0.4.64 (#6729) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* Some adjustments to methods on `ExtDTypeRef` (#6716) @connortsui20\r\n* chore: Update .clang-tidy to check all C++ source files (#6711) @SYaoJun\r\n* chore: vortex-cuda cleanups (#6703) @0ax1\r\n* Extension Scalar Cleanup (#6699) @connortsui20\r\n* Update public-api (#6698) @gatesn\r\n* Simplify ScalarFnPlugin (#6687) @gatesn\r\n* Remove code for old benchmarks website (#6684) @AdamGS\r\n\u003C\u002Fdetails>\r\n","2026-03-03T16:59:29",{"id":207,"version":208,"summary_zh":209,"released_at":210},100598,"0.60.0","0.60.0 largely involves unifying our vtable concepts as per the [internal docs page](https:\u002F\u002Fdocs.vortex.dev\u002Fdeveloper-guide\u002Finternals\u002Fvtables) in order to lay the groundwork for future extension points. Most notably: full Extension DType support, as well as AggregateFns.\r\n\r\n## Changes\r\n\r\n## ⚠️ Breaks\r\n\r\n* ScalarFn VTable (#6679) @gatesn\r\n* Extension Scalar VTable (#6680) @connortsui20\r\n* Rename spawn_blocking -> spawn_blocking_io (#6678) @gatesn\r\n* Unify ExtVTable per vtable design doc (#6662) @gatesn\r\n* Add an `extension` module to `vortex` (#6624) @connortsui20\r\n* break: clean up compare (#6591) @joseph-isaacs\r\n* Merge `vortex-dtype` into `vortex-array` (#6582) @connortsui20\r\n* break: clean up compute (#6572) @joseph-isaacs\r\n* Bump Rust MSRV to 1.90 (#6597) @robert3005\r\n* break[array]: lazy list_contains (#6571) @joseph-isaacs\r\n\r\n## ✨ Features\r\n\r\n* Support building duckdb from a hash, including CI (#6658) @myrrc\r\n* DuckDB to use the Scan API (#6652) @gatesn\r\n* Use Scan API (#6391) @gatesn\r\n* feat[gpu]: multi-stage dynamic dispatch with plan builder (#6636) @0ax1\r\n* DuckDB lifetimes (#6620) @joseph-isaacs\r\n* Expose table scan progress to DuckDB (#6596) @myrrc\r\n* expose Executor, AbortHandle, AbortHandleRef, and Handle (#6595) @danking\r\n\r\n## 🚀 Performance\r\n\r\n* Avoid redundant chunk execution in pack_struct_chunks (#6682) @palaska\r\n* read future to skip polled and dropped events for completed requests (#6667) @onursatici\r\n* perf[gpu]: speed up dyn dispatch run-end kernel (#6665) @0ax1\r\n* Route default append_to_builder through full execution loop (#6655) @palaska\r\n* Add take-based rebuild strategy for ListView with small lists (#6492) @palaska\r\n* oncelock shared array for zero cost access after materialisation (#6653) @onursatici\r\n* oncelock shared array future on cuda flat layout (#6585) @onursatici\r\n* cow buffers on array decode (#6590) @onursatici\r\n* Extract to buffer once in list_contains (#6642) @palaska\r\n* perf(layout): add empty-range fast paths in chunked reader (#6513) @caicancai\r\n* chore[btrblocks]: more precise `FoR` `expected_compression_ratio` (#6301) @joseph-isaacs\r\n* perf: remove double execute in exprs (#6608) @joseph-isaacs\r\n* Use approx footer size for caching instead of walking the layout tree (#6601) @robert3005\r\n* do not double validate the flatbuffer on the cuda layout (#6583) @onursatici\r\n* increase default nvme coalescing (#6586) @onursatici\r\n* decoding stats should lock once (#6587) @onursatici\r\n* perf[array]: chunked take with bounded compute graph  (#6589) @joseph-isaacs\r\n\r\n## 🐛 Bug Fixes\r\n\r\n\u003Cdetails>\r\n\u003Csummary>14 changes\u003C\u002Fsummary>\r\n\r\n* cuda ctx bind to thread before unsafe (#6681) @onursatici\r\n* keep DropOnSync alive until after dispatching for cuda slices (#6673) @onursatici\r\n* Convert &mut to & for DuckDB GlobalData (#6634) @gatesn\r\n* resize FSST compressor buffer to be large enough for largest string (#6676) @a10y\r\n* Revert \"Support building duckdb from a hash, including CI\" (#6670) @myrrc\r\n* Close DuckDB database before re-opening (#6654) @gatesn\r\n* More minimal listview rebuild benches, force canonicalize (#6629) @palaska\r\n* only a read lock for current_array_ref (#6631) @danking\r\n* fix: faster codspeed bench for `listview_rebuild` (#6628) @joseph-isaacs\r\n* Balance expression trees during binary stat falsification (#6622) @AdamGS\r\n* Fix compression benchmarks build (#6614) @AdamGS\r\n* Fix scalar deserialisation where value was unsigned\u002Fsigned for signed\u002Funsigned type (#6604) @robert3005\r\n* fix: chunked array take with nulls (#6603) @joseph-isaacs\r\n* fix: fuzzer repeat issue tracking (#6577) @joseph-isaacs\r\n\u003C\u002Fdetails>\r\n\r\n## 📖 Documentation\r\n\r\n\u003Cdetails>\r\n\u003Csummary>4 changes\u003C\u002Fsummary>\r\n\r\n* Language bindings docs (#6666) @gatesn\r\n* Update docs for vtable unification plan (#6661) @gatesn\r\n* docs: Remove unused CLI argument (code always uses temporary path) (#6637) @SYaoJun\r\n* docs: clarify cuda async execution model (#6611) @0ax1\r\n\u003C\u002Fdetails>\r\n\r\n## 🧰 Maintenance\r\n\r\n\u003Cdetails>\r\n\u003Csummary>24 changes\u003C\u002Fsummary>\r\n\r\n* DuckDB: test curl impl, don't auto-load extensions (#6677) @myrrc\r\n* chore: exclude cuda gen files from auto-formatting (#6671) @0ax1\r\n* use match_each_canonical macro to reduce some canonical impl boilerplate (#6668) @AdamGS\r\n* chore: trim unused crate deps with `cargo-machete` (#6663) @0ax1\r\n* cudarc use 12.5 instead of 12.8 (#6660) @a10y\r\n* docs: resurrect lost ddb build.rs comment (#6659) @0ax1\r\n* chore[gpu]: alp + for + bp CUDA benchmark (#6644) @0ax1\r\n* chore: `clang-format` - braces after `if` or `for` (#6643) @0ax1\r\n* chore(deps): update codspeedhq\u002Faction digest to 2ac5728 (#6638) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* duckdb filesystem: don't use wrapper type (#6641) @myrrc\r\n* use PublicBI fork with R2 hosted dataset (#6640) @a10y\r\n* chore(deps): update all patch updates (#6639) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* Remove bad paths (#6626) @connortsui20\r\n* Make the tui an default optional dependecy of vortex-python (#6625) @AdamGS\r\n* re","2026-02-26T14:00:28",{"id":212,"version":213,"summary_zh":214,"released_at":215},100599,"0.59.4","## Changes\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* Published packages cannot depend on unpublished packages (#6592) @robert3005\r\n","2026-02-18T17:53:50",{"id":217,"version":218,"summary_zh":219,"released_at":220},100600,"0.59.3","## Changes\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* minor c++ duckdb integration changes (#6566) @myrrc\r\n* Vortex crate doesn't unconditionally depend on vortex-cuda-macros (#6580) @robert3005\r\n","2026-02-18T16:42:37",{"id":222,"version":223,"summary_zh":224,"released_at":225},100601,"0.59.2","## Changes\r\n\r\n## 🧰 Maintenance\r\n\r\n* Add ci check for java publish (#6578) @robert3005\r\n","2026-02-18T15:25:56",{"id":227,"version":228,"summary_zh":229,"released_at":230},100602,"0.59.1","## Changes\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* fix: CUDA scalar inplace (#6567) @0ax1\r\n\r\n## 🧰 Maintenance\r\n\r\n* chore: drop flaky duckdb http e2e test (#6570) @0ax1\r\n* chore: make auto `clang-format` consistent (#6568) @0ax1\r\n","2026-02-18T14:39:22",{"id":232,"version":233,"summary_zh":234,"released_at":235},100603,"0.59.0","## Changes\r\n\r\n* docs: tidy and unify Python quickstart examples (#5972) @caicancai\r\n* Better `vx-bench` docs in README (#5900) @AdamGS\r\n\r\n## ⚠️ Breaks\r\n\r\n* Remove `vortex-compute` (#6561) @connortsui20\r\n* Introduce `VortexError::Other` and simplify `Display` implementation (#6410) @AdamGS\r\n* Move `vortex-scalar` into `vortex-array` (#6523) @connortsui20\r\n* break[array]: lazy between (#6528) @joseph-isaacs\r\n* break[array]: mask compute to lazy mask execution (#6485) @joseph-isaacs\r\n* break[array]: lazy compare function (#6495) @joseph-isaacs\r\n* Remove `vortex-vector` (#6529) @connortsui20\r\n* break[array]: move like compute to lazy compute (#6497) @joseph-isaacs\r\n* Pass buffers to `VTable::deserialize` (#6473) @connortsui20\r\n* break[array]: move cast traits to exprs (#6487) @joseph-isaacs\r\n* Revert #6363 (#6476) @connortsui20\r\n* Use `Scalar` directly for constant array metadata inlining (#6439) @connortsui20\r\n* Fix `Scalar` de\u002Fserialization with proto and outline nulls from `ScalarValue` (#6309) @connortsui20\r\n* chore[array]: inline take compute function (#6376) @joseph-isaacs\r\n* Add Array::deserialize arguments (#6340) @gatesn\r\n* Update FSST to store components of compressed codes (#6325) @gatesn\r\n* Array Execution (#6307) @gatesn\r\n* Execute parent to return ArrayRef (#6257) @gatesn\r\n* Extension DType vtables (#6081) @gatesn\r\n* break[expr]: remove Expression.evaluate use Array.apply(expr) instead (#6167) @joseph-isaacs\r\n* Make metrics more local to prevent unbounded memory usage (#6156) @AdamGS\r\n* fallible scalar_at and validity (#6102) @joseph-isaacs\r\n* Remove the python feature from vortex-error (#6064) @AdamGS\r\n* break[*]: make array methods fallible (#6086) @joseph-isaacs\r\n* chore[array]: replace to_canonical with to execute. (#6061) @joseph-isaacs\r\n* Array VTable (#6000) @gatesn\r\n* Remove duplicate ValidityVTable logic (#5975) @gatesn\r\n* chore[array]: remove CanonicalVTable and move append_to_builder to main VTable (#6045) @joseph-isaacs\r\n* Remove EncodeVTable (#6036) @gatesn\r\n*  chore: fallible canonical (#6006) @joseph-isaacs\r\n* feat[array]: use execute to return `Canonical` array not `Vector` (#5895) @joseph-isaacs\r\n\r\n## ✨ Features\r\n\r\n* Add FileSystem trait and make DuckDB configurable (#6564) @gatesn\r\n* Add scan concurrency config for datafusion source (#5945) @AdamGS\r\n* feat: implement DuckDB filesystem integration for Vortex file handling (#6198) @iceboundrock\r\n* vx convert to support cuda compatible vortex files (#6522) @onursatici\r\n* cuda flat layout (#6521) @onursatici\r\n* feat[xtask]: faster public-api (#6498) @joseph-isaacs\r\n* Improve substrait support to include more types and expressions (#6484) @AdamGS\r\n* feat[array]: refactor `zip` compute kernel to lazy `zip` via ScalarFn Array (#6461) @joseph-isaacs\r\n* feat[gpu]: CUDA dynamic dispatch kernel (#6483) @0ax1\r\n* feat[array]: lazy numeric (#6469) @joseph-isaacs\r\n* feat[array]: move over to a expr based cast (#6404) @joseph-isaacs\r\n* refactor[array]: move boolean ops to lazy binary expr (#6447) @joseph-isaacs\r\n* Public api lockfiles (#6348) @gatesn\r\n* feat[array]: refactor invert compute kernel to lazy `not` (#6446) @joseph-isaacs\r\n* sqllogictest runner for DF and DuckDB on Vortex (#6273) @AdamGS\r\n* feat[array]: move over fill_null to scalar_fn array making it lazy (#6406) @joseph-isaacs\r\n* Upgrade Pco to 1.0.1 (#6354) @mwlon\r\n* Add execution target that recursively canonicalises as well as canonical with canonical validity (#6380) @robert3005\r\n* dict of strings kernel to support outlined views (#6401) @onursatici\r\n* zstd buffers cuda kernel (#6394) @onursatici\r\n* Make `VortexSource::new` public (#6392) @AdamGS\r\n* Make projection pushdown in DF an opt-in feature (#6373) @AdamGS\r\n* feat[expr]: new fill null expr (#6385) @joseph-isaacs\r\n* zstd buffers array (#6362) @onursatici\r\n* gpu compatible write strategy, move compact strategy to use btrblocks with zstd and pco (#6322) @onursatici\r\n* cuda dictionary of vbv decompression (#6361) @0ax1\r\n* CLI flag to enable tracing for benchmarks (#6350) @gatesn\r\n* chore[array]: move take kernel to execute\u002Freduce rules (#6310) @joseph-isaacs\r\n* chore[cuda]: add date32 exporter test (#6345) @a10y\r\n* feat: display tree with no metadata (#5898) @danking\r\n* feat[cuda]: device exports for varbinview (#6338) @a10y\r\n* vortex-metrics v2 (#6187) @AdamGS\r\n* feat[array]: dict array allows signed codes (#6336) @joseph-isaacs\r\n* feat[cuda]: export arrays to ArrowDeviceArray (#6253) @a10y\r\n* feat[gpu]: CUDA `date_time_parts` kernel (#6303) @0ax1\r\n* feat: `alternate` for `StructFields` (#6276) @blaginin\r\n* Add a canonical matcher (#6292) @gatesn\r\n* Move over to array matchers (#6291) @gatesn\r\n* feat[gpu]: cuda runend decoding (#6275) @0ax1\r\n* feat[btrblocks]: add a dynamic btr blocks compressor (#6207) @joseph-isaacs\r\n* feat[cuda]: constant array for numeric types (#6248) @joseph-isaacs\r\n* feat[array]: validate array encodings on write (#6241) @joseph-isaacs\r\n* feat[cuda]: SequenceArray (#6232) @a10y\r\n* feat[cuda]: patches ","2026-02-18T11:38:16",{"id":237,"version":238,"summary_zh":239,"released_at":240},100604,"0.59.0-rc.0","## Changes\r\n\r\n* docs: tidy and unify Python quickstart examples (#5972) @caicancai\r\n* Better `vx-bench` docs in README (#5900) @AdamGS\r\n\r\n## ⚠️ Breaks\r\n\r\n* chore[array]: inline take compute function (#6376) @joseph-isaacs\r\n* Add Array::deserialize arguments (#6340) @gatesn\r\n* Update FSST to store components of compressed codes (#6325) @gatesn\r\n* Array Execution (#6307) @gatesn\r\n* Execute parent to return ArrayRef (#6257) @gatesn\r\n* Extension DType vtables (#6081) @gatesn\r\n* break[expr]: remove Expression.evaluate use Array.apply(expr) instead (#6167) @joseph-isaacs\r\n* Make metrics more local to prevent unbounded memory usage (#6156) @AdamGS\r\n* fallible scalar_at and validity (#6102) @joseph-isaacs\r\n* Remove the python feature from vortex-error (#6064) @AdamGS\r\n* break[*]: make array methods fallible (#6086) @joseph-isaacs\r\n* chore[array]: replace to_canonical with to execute. (#6061) @joseph-isaacs\r\n* Array VTable (#6000) @gatesn\r\n* Remove duplicate ValidityVTable logic (#5975) @gatesn\r\n* chore[array]: remove CanonicalVTable and move append_to_builder to main VTable (#6045) @joseph-isaacs\r\n* Remove EncodeVTable (#6036) @gatesn\r\n*  chore: fallible canonical (#6006) @joseph-isaacs\r\n* feat[array]: use execute to return `Canonical` array not `Vector` (#5895) @joseph-isaacs\r\n\r\n## ✨ Features\r\n\r\n* Make `VortexSource::new` public (#6392) @AdamGS\r\n* Make projection pushdown in DF an opt-in feature (#6373) @AdamGS\r\n* feat[expr]: new fill null expr (#6385) @joseph-isaacs\r\n* zstd buffers array (#6362) @onursatici\r\n* gpu compatible write strategy, move compact strategy to use btrblocks with zstd and pco (#6322) @onursatici\r\n* cuda dictionary of vbv decompression (#6361) @0ax1\r\n* CLI flag to enable tracing for benchmarks (#6350) @gatesn\r\n* chore[array]: move take kernel to execute\u002Freduce rules (#6310) @joseph-isaacs\r\n* chore[cuda]: add date32 exporter test (#6345) @a10y\r\n* feat: display tree with no metadata (#5898) @danking\r\n* feat[cuda]: device exports for varbinview (#6338) @a10y\r\n* vortex-metrics v2 (#6187) @AdamGS\r\n* feat[array]: dict array allows signed codes (#6336) @joseph-isaacs\r\n* feat[cuda]: export arrays to ArrowDeviceArray (#6253) @a10y\r\n* feat[gpu]: CUDA `date_time_parts` kernel (#6303) @0ax1\r\n* feat: `alternate` for `StructFields` (#6276) @blaginin\r\n* Add a canonical matcher (#6292) @gatesn\r\n* Move over to array matchers (#6291) @gatesn\r\n* feat[gpu]: cuda runend decoding (#6275) @0ax1\r\n* feat[btrblocks]: add a dynamic btr blocks compressor (#6207) @joseph-isaacs\r\n* feat[cuda]: constant array for numeric types (#6248) @joseph-isaacs\r\n* feat[array]: validate array encodings on write (#6241) @joseph-isaacs\r\n* feat[cuda]: SequenceArray (#6232) @a10y\r\n* feat[cuda]: patches kernel (#6231) @a10y\r\n* Pass limit through Python Vortex (#6239) @gatesn\r\n* Ship Vortex CLI as part of Python package (#6233) @gatesn\r\n* Feature: Add more `Filter\u003C_>` implementations (#6173) @connortsui20\r\n* Benchmarks website revamped (#6215) @palaska\r\n* Dataset API (#5949) @gatesn\r\n* feat[cuda]: filter for Decimal\u002FVarBinView (#6196) @a10y\r\n* feat[cuda]: add a cuda stream pool (#6205) @joseph-isaacs\r\n* feat[python]: support full read\u002Fwrite from object storage (#6022) @a10y\r\n* feat[scan]: gpu scan (#6199) @joseph-isaacs\r\n* feat[gpu]: nvidia cub filter kernel (#6188) @0ax1\r\n* feature: Add fastlanes bit unpacking cuda kernels (#6145) @robert3005\r\n* Use built-in DF cache for file metadata and fix metrics wiring (#6164) @AdamGS\r\n* feat: reduce size of segments containing fixed-size-list arrays (#6180) @danking\r\n* Feature: Use `array.filter()` instead of `filter(array)` compute (#6146) @connortsui20\r\n* Rewrite benchmark website (#6160) @palaska\r\n* feat: stats pruning for LIKE filters (#6049) @a10y\r\n* feat: Zstd CUDA nvCOMP decompression (#6136) @0ax1\r\n* feat[cuda]: canonical `to_host` (#6130) @joseph-isaacs\r\n* feat[cuda]: dict decimal take (#6129) @joseph-isaacs\r\n* feat[gpu]: dict take values prim (#6101) @joseph-isaacs\r\n* chore[cuda]: decimal_byte_parts (#6118) @joseph-isaacs\r\n* feat[gpu]: scalar encodings (#6109) @joseph-isaacs\r\n* Add VortexScanReplacement to support reading from '*.vortex' (#6111) @robert3005\r\n* feat: `nvcomp` wrapper crate (#6108) @0ax1\r\n* Allow configuring different readers for DF integration (#6027) @AdamGS\r\n* feat: introduce `CudaDeviceBuffer` (#6060) @0ax1\r\n* Array VTable (#6000) @gatesn\r\n* feat[arary]: add a slice array to replace the slice op. (#5958) @joseph-isaacs\r\n* Attempting to simplify the IO read traits (#5935) @AdamGS\r\n* feat: CUDA compilation infra & FoR kernel (#5966) @0ax1\r\n* feat[array]: `execute::\u003CPrimitiveArray>()` (#5954) @joseph-isaacs\r\n* Spark 4 (#5944) @a10y\r\n* feat: cuda gpu skeleton (#5936) @0ax1\r\n* Add flag to run benchmarks under Samply (#5940) @gatesn\r\n* Datafusion 52 upgrade (#5863) @AdamGS\r\n* Support precision casting for `DScalar` (#5937) @AdamGS\r\n* feat[array]: use execute in canonical (#5925) @joseph-isaacs\r\n* feat(vx): add JSON output, segments command, and SQL query support (#5642) @palaska\r","2026-02-10T15:43:07",{"id":242,"version":243,"summary_zh":244,"released_at":245},100605,"0.58.0","## Changes\r\n\r\n## ✨ Features\r\n\r\n* Feature: Make `vortex-tui` a library (#5779) @connortsui20\r\n\r\n## 🚀 Performance\r\n\r\n* End DataFusion stream early if file can be pruned away by dynamic expr (#5874) @AdamGS\r\n\r\n## 🧰 Maintenance\r\n\r\n* chore: add overflow tests for unsigned types in BigCast (#5866) @caicancai\r\n","2026-01-07T17:13:28",{"id":247,"version":248,"summary_zh":249,"released_at":250},100606,"0.57.2","## Changes\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* fix: Move from macos-13 runners to macos-15-intel runners (#5875) @robert3005\r\n","2026-01-06T18:48:22",{"id":252,"version":253,"summary_zh":254,"released_at":255},100607,"0.57.1","## Changes\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* fix: Correctly pin maturin to 1.10.2 (#5873) @robert3005\r\n","2026-01-06T18:23:18",{"id":257,"version":258,"summary_zh":259,"released_at":260},100608,"0.57.0","## Changes\r\n\r\n## ⚠️ Breaks\r\n\r\n* Fix BoolArray::new to take BitBuffer (#5690) @gatesn\r\n* Lazy array expression evaluation (#5625) @gatesn\r\n* Do not inline vortex_array into vortex:: namespace (#5584) @gatesn\r\n* Move stats into expr (#5582) @gatesn\r\n* Combine Array VTable with Encoding (#5462) @gatesn\r\n* Consolidate into stat_expression function (#5366) @gatesn\r\n* chore[vortex-array]: remove SerdeVTable (#5387) @joseph-isaacs\r\n* feat[vortex-expr]: add expr rewrite rules (#5348) @joseph-isaacs\r\n\r\n## ✨ Features\r\n\r\n* feat: teach TemporalMetadata about its relationship to DTypes (#5864) @danking\r\n* Pluggable expression conversion for DF (#5853) @AdamGS\r\n* Introduce extendable access plan for DF scans (#5855) @AdamGS\r\n* Upgrade DF to 51 (#5189) @AdamGS\r\n* Benchmarks re-org (#5676) @AdamGS\r\n* Push down cast (#5803) @gatesn\r\n* ListView to List (#5802) @gatesn\r\n* feat[array]: stats + validity in display array (#5799) @joseph-isaacs\r\n* deterministic encoding ordering (#5770) @onursatici\r\n* feat[fixed-size-list]: impl repeat and slice (#5751) @joseph-isaacs\r\n* feat[compute]: compare decimal and varbin (#5757) @joseph-isaacs\r\n* feat[datafusion]: Support DataFusion `PartitionedFile` extensions for external index (#5556) @haohuaijin\r\n* FSST Filter Kernel (#5755) @gatesn\r\n* perf[ci]: stopped instances (#5753) @joseph-isaacs\r\n* Feature: makes the decompressor and compressor methods public (#5752) @connortsui20\r\n* Feature: add fused bitpack filter kernel (#5741) @connortsui20\r\n* Execute parent (#5736) @gatesn\r\n* feat[array]: duckdb executor (#5737) @joseph-isaacs\r\n* Arrow Executor (#5647) @gatesn\r\n* Feature: add primitive casting (#5718) @connortsui20\r\n* Feature: add some `Cast` infrastructure (#5708) @connortsui20\r\n* feat[array]: dynamic expr execute (#5714) @joseph-isaacs\r\n* Feature: add `append_array_as_list` methods to the list arrays (#5707) @connortsui20\r\n* Feature: implement `DictArray` batched execute (#5686) @connortsui20\r\n* feat[array]: list contains scalar (#5713) @joseph-isaacs\r\n* feat[vector]: Eq (#5681) @joseph-isaacs\r\n* Feature: add zero and null constructors for scalars (#5705) @connortsui20\r\n* Feature: batch execute for `DeltaArray` (#5667) @connortsui20\r\n* feat[vector]: slice varbinview  (#5697) @joseph-isaacs\r\n* Feature: add `take` for the view vectors (#5682) @connortsui20\r\n* Feature: Implement `take` on more vectors + stubs (#5653) @connortsui20\r\n* feature: add `__version__` attribute to Python package (#5641) @d33bs\r\n* Feature: add `take` for primitive and bool vectors (#5540) @connortsui20\r\n* vx layout display (#5650) @joseph-isaacs\r\n* Feature: added properties to VortexScanner (#5500) @sherlockbeard\r\n* Add --version arg to vx (#5646) @palaska\r\n* Feature: add total read size counter (#5600) @harryscholes\r\n* feat[scalar_fn]: binary ops (#5617) @joseph-isaacs\r\n* Execute ScalarFn arrays (#5611) @gatesn\r\n* FilterArray (#5610) @gatesn\r\n* Add GetItemFn (#5609) @gatesn\r\n* Add MaskFn (#5606) @gatesn\r\n* feat[scalar_fn]: `is_null` (#5601) @joseph-isaacs\r\n* Scalar functions (#5561) @gatesn\r\n* feat[buffer]: use BufferHandle in more places (#5567) @joseph-isaacs\r\n* feat: alp decompress to vector (#5548) @0ax1\r\n* feat[gpu]: use BufferHandle to the array vtable build (#5565) @joseph-isaacs\r\n* feat[vortex-expr]: `is_fallible` analysis (#5546) @joseph-isaacs\r\n* Feature: add `take` compute for slices (#5537) @connortsui20\r\n* feat[vortex-expr]: `is_fallible` expression analysis (#5531) @joseph-isaacs\r\n* feat[vortex-expr]: add a `is_null_sensitive` expression analysis (#5528) @joseph-isaacs\r\n* Feature: add a take compute trait (#5503) @connortsui20\r\n* Feature: add impl owned filter impls (#5493) @connortsui20\r\n* Feature: add filter impl for `FixedSizeListVector` (#5494) @connortsui20\r\n* Vector cast (#5461) @gatesn\r\n* Scalar arithmetic (#5460) @gatesn\r\n* feat[cli]: add scroll for tree encoding view (#5497) @a10y\r\n* Revert \"Revert \"chore[ci]: add windows test to CI (#5439)\"\" (#5486) @joseph-isaacs\r\n* More vector scalars (#5459) @gatesn\r\n* feature: Support std_file on windows as it's used by cxx bindings (#5450) @robert3005\r\n* Feature: implement bitpacking batch execute (#5446) @connortsui20\r\n* feat[vortex-array]: added debug to expr\u002Farray reduce rules (#5442) @joseph-isaacs\r\n* feat: publish vortex-spark-all assembly JAR (#5435) @a10y\r\n* feat[vortex-array] add an array session rule registry (#5414) @joseph-isaacs\r\n* Feature: add `spare_capacity_mut` to `PVectorMut` (#5287) @connortsui20\r\n* feat: pipeline-pcodec (#5415) @0ax1\r\n* Add VectorOps::clear (#5409) @gatesn\r\n* feat[vortex-array]: expr array that represents lazy computation (#5400) @joseph-isaacs\r\n* feat[vortex-expr]: `reduce_parent` has typed parent (#5398) @joseph-isaacs\r\n* feat: cast expression (#5389) @danking\r\n* feat: PyExpr::evaluate (#5388) @danking\r\n* feat[vortex-expr]: add expr rewrite rules (#5348) @joseph-isaacs\r\n* Faster Pipelines (#5352) @gatesn\r\n* feat[vortex-expr]: better debug print (#5374) @joseph-isaacs\r\n\r\n## 🚀 Performance\r\n\r\n* perf: list contains sca","2026-01-06T17:58:27",{"id":262,"version":263,"summary_zh":264,"released_at":265},100609,"0.57.0-rc.0","## Changes\r\n\r\n## ⚠️ Breaks\r\n\r\n* Do not inline vortex_array into vortex:: namespace (#5584) @gatesn\r\n* Move stats into expr (#5582) @gatesn\r\n* Combine Array VTable with Encoding (#5462) @gatesn\r\n* Consolidate into stat_expression function (#5366) @gatesn\r\n* chore[vortex-array]: remove SerdeVTable (#5387) @joseph-isaacs\r\n* feat[vortex-expr]: add expr rewrite rules (#5348) @joseph-isaacs\r\n\r\n## ✨ Features\r\n\r\n* feat[scalar_fn]: binary ops (#5617) @joseph-isaacs\r\n* Execute ScalarFn arrays (#5611) @gatesn\r\n* FilterArray (#5610) @gatesn\r\n* Add GetItemFn (#5609) @gatesn\r\n* Add MaskFn (#5606) @gatesn\r\n* feat[scalar_fn]: `is_null` (#5601) @joseph-isaacs\r\n* Scalar functions (#5561) @gatesn\r\n* feat[buffer]: use BufferHandle in more places (#5567) @joseph-isaacs\r\n* feat: alp decompress to vector (#5548) @0ax1\r\n* feat[gpu]: use BufferHandle to the array vtable build (#5565) @joseph-isaacs\r\n* feat[vortex-expr]: `is_fallible` analysis (#5546) @joseph-isaacs\r\n* Feature: add `take` compute for slices (#5537) @connortsui20\r\n* feat[vortex-expr]: `is_fallible` expression analysis (#5531) @joseph-isaacs\r\n* feat[vortex-expr]: add a `is_null_sensitive` expression analysis (#5528) @joseph-isaacs\r\n* Feature: add a take compute trait (#5503) @connortsui20\r\n* Feature: add impl owned filter impls (#5493) @connortsui20\r\n* Feature: add filter impl for `FixedSizeListVector` (#5494) @connortsui20\r\n* Vector cast (#5461) @gatesn\r\n* Scalar arithmetic (#5460) @gatesn\r\n* feat[cli]: add scroll for tree encoding view (#5497) @a10y\r\n* Revert \"Revert \"chore[ci]: add windows test to CI (#5439)\"\" (#5486) @joseph-isaacs\r\n* More vector scalars (#5459) @gatesn\r\n* feature: Support std_file on windows as it's used by cxx bindings (#5450) @robert3005\r\n* Feature: implement bitpacking batch execute (#5446) @connortsui20\r\n* feat[vortex-array]: added debug to expr\u002Farray reduce rules (#5442) @joseph-isaacs\r\n* feat: publish vortex-spark-all assembly JAR (#5435) @a10y\r\n* feat[vortex-array] add an array session rule registry (#5414) @joseph-isaacs\r\n* Feature: add `spare_capacity_mut` to `PVectorMut` (#5287) @connortsui20\r\n* feat: pipeline-pcodec (#5415) @0ax1\r\n* Add VectorOps::clear (#5409) @gatesn\r\n* feat[vortex-array]: expr array that represents lazy computation (#5400) @joseph-isaacs\r\n* feat[vortex-expr]: `reduce_parent` has typed parent (#5398) @joseph-isaacs\r\n* feat: cast expression (#5389) @danking\r\n* feat: PyExpr::evaluate (#5388) @danking\r\n* feat[vortex-expr]: add expr rewrite rules (#5348) @joseph-isaacs\r\n* Faster Pipelines (#5352) @gatesn\r\n* feat[vortex-expr]: better debug print (#5374) @joseph-isaacs\r\n\r\n## 🚀 Performance\r\n\r\n* perf[ci]: speed up ci MORE (#5576) @joseph-isaacs\r\n* perf(ci): skip rust-cache on runs-on runners with S3 sccache (#5570) @joseph-isaacs\r\n* chunked array zip (#5530) @onursatici\r\n* varbinview zip kernel (#5526) @onursatici\r\n* chore[vortex-dict]: numeric pushdown & clean up the dict ctor (#5438) @joseph-isaacs\r\n* Handwritten pipeline benchmark and analysis (#5408) @connortsui20\r\n* Fix: incorrect offset for nulls + don't chunk elements (#5423) @connortsui20\r\n* perf[dict]: all_values_referenced to allow pushdown optimisation. (#5416) @joseph-isaacs\r\n* perf[vortex-expr]: replace can stop looking at subtree if it finds a match (#5405) @joseph-isaacs\r\n* actually make ZCTL (#5402) @a10y\r\n* fix: performance regression for filtering ListView (#5390) @a10y\r\n* fix[vortex-dict]: faster min_max for dict array (#5288) @joseph-isaacs\r\n* fix: yo dawg, I heard you like inlining (#5363) @a10y\r\n\r\n## 🐛 Bug Fixes\r\n\r\n\u003Cdetails>\r\n\u003Csummary>35 changes\u003C\u002Fsummary>\r\n\r\n* fix: avoid ListBuilder (#5636) @a10y\r\n* fix: disable flaky bench for codspeed (#5580) @0ax1\r\n* fix: don't bench `slice_arrow_buffer` on codspeed (#5578) @0ax1\r\n* fix: fixed seed for micro-benchmarks (#5574) @0ax1\r\n* fix: don't clone in micro-benchmarks (#5573) @0ax1\r\n* fix: Decimal sum doesn't panic but returns null on overflow (#5564) @robert3005\r\n* fix[dict]: min_max must not be null (#5560) @joseph-isaacs\r\n* fix[display]: escape strings (#5551) @joseph-isaacs\r\n* fix: benchmark black box handling (#5558) @0ax1\r\n* fix: make micro-benchmark labels stable (#5557) @0ax1\r\n* Fix: Schema projection order mismatch from table\u002Ffile schema (#5541) @brancz\r\n* fix: remove print (#5547) @joseph-isaacs\r\n* fix: assert_arrays_eq macro reexports format function to hide itertools dep (#5543) @robert3005\r\n* fix[mask]: intersect_by_rank and bit to arrow (#5545) @joseph-isaacs\r\n* fix: Restore fast constant sum behaviour, don't fuzz floating point sum compute function (#5527) @robert3005\r\n* Fix: ConstantArray float sum behaves the same way as primitive array (#5513) @robert3005\r\n* Fix: this may have been a merge conflict (#5510) @connortsui20\r\n* fix[dict]: not (filter\u002Ftake) set_all_values_referenced (#5496) @joseph-isaacs\r\n* fix: Sum from stats has to account for accumulator (#5445) @robert3005\r\n* fix: benchmark input handling (#5488) @0ax1\r\n* fix: handling of struct fields in Spark (#5453) @a10y\r\n* Revert \"chore[ci]:","2025-12-08T10:38:10",{"id":267,"version":268,"summary_zh":269,"released_at":270},100610,"0.56.0","## Changes\r\n\r\n## ⚠️ Breaks\r\n\r\n* chore[array\u002Fexpr]: move `vortex-expr` into `vortex_array::expr` (#5269) @joseph-isaacs\r\n\r\n## ✨ Features\r\n\r\n* Move BitView to vortex-buffer and make generic over N (#5353) @gatesn\r\n* feat: bump duckdb to 1.4.2 (#5337) @0ax1\r\n* arrow -> vortex for dict arrays (#5316) @onursatici\r\n* feat: automated fuzzing issue creation with Claude (#5292) @joseph-isaacs\r\n* Feature: add aligned bitpacked pipeline kernel (#5299) @connortsui20\r\n* feat: impl `expand` for `Buffer` & `BufferMut` (#5270) @0ax1\r\n* feat: use Sparse compression for floats, strings (#5237) @a10y\r\n\r\n## 🚀 Performance\r\n\r\n* perf: BitBuffer::from(Vec\u003Cbool>) use collect_bool (#5325) @joseph-isaacs\r\n* perf: optimize `expand` (#5285) @0ax1\r\n* fix[vortex-dict]: avoid full materialization in min_max (#5268) @asubiotto\r\n\r\n## 🐛 Bug Fixes\r\n\r\n\u003Cdetails>\r\n\u003Csummary>13 changes\u003C\u002Fsummary>\r\n\r\n* fix: add permissions to fuzzer fix automation workflow (#5345) @joseph-isaacs\r\n* fix: `SequenceVTable` bounds check (#5341) @blaginin\r\n* fix: unblock the fuzzers (#5335) @a10y\r\n* Fix: handle validity in bitpack pipeline kernel (#5330) @connortsui20\r\n* Fix zero-copy pipeline input (#5324) @gatesn\r\n* fix: update Claude Code Action to v1 parameter format (#5314) @joseph-isaacs\r\n* fix vortex-gpu compilation (#5315) @onursatici\r\n* fix[vortex-datafusion]: check field exists in get_field pushdown (#5295) @asubiotto\r\n* fix[vortex-dict]: avoid full materialization in min_max (#5268) @asubiotto\r\n* fix[array]: sum with initial value to fix op assoc (#5278) @joseph-isaacs\r\n* fix: vortex-tui browse with search (#5282) @a10y\r\n* handle null views correctly on varbinview compaction (#5279) @onursatici\r\n* fix: compare for struct with constant items (#5271) @a10y\r\n\u003C\u002Fdetails>\r\n\r\n## 🧰 Maintenance\r\n\r\n\u003Cdetails>\r\n\u003Csummary>34 changes\u003C\u002Fsummary>\r\n\r\n* chore: All of vortex-gpu requires compiler flag (#5362) @robert3005\r\n* chore(deps): update rust crate bytes to v1.11.0 (#5358) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update all patch updates (#5357) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore: bug is not a sufficient label (#5351) @danking\r\n* chore: document Expr.__getitem__ (get a field of a struct array) (#5344) @danking\r\n* fix: cfg disable unix-specific operations (#5326) @danking\r\n* chore: duckdb e2e roundtrip tests (#5342) @0ax1\r\n* feat: add manual trigger support to fuzzer fix automation (#5323) @joseph-isaacs\r\n* chore: bump duckdb version to 1.4.2 in gh actions (#5339) @0ax1\r\n* test: more `iter_bits` test cases (#5336) @0ax1\r\n* chore: add automated crash reporting for array_ops fuzzing (#5317) @joseph-isaacs\r\n* chore: implement Filter for new MaskIndices type for all vectors (#5333) @a10y\r\n* Chore: add todo and clean a bit in pipeline step (#5334) @connortsui20\r\n* chore[claude]: update claude.md (#5318) @joseph-isaacs\r\n* feat: Add Stage 2 automated fix workflow for fuzzer crashes (#5319) @joseph-isaacs\r\n* chore: bump claude-code-action to v1.0.16 (#5312) @joseph-isaacs\r\n* chore(deps): update gradle to v9 (#4085) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update plugin com.palantir.git-version to v4.2.0 (#5309) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update plugin com.vanniktech.maven.publish to v0.35.0 (#5310) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update plugin com.palantir.consistent-versions to v3.7.0 (#5308) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* fix(deps): update dependency ch.qos.logback:logback-classic to v1.5.21 (#5307) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update actions\u002Fdownload-artifact action to v6 (#5305) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* chore(deps): update actions\u002Fupload-artifact action to v5 (#5306) @[renovate[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Frenovate)\r\n* Chore: move filter files around (#5300) @connortsui20\r\n* Unblock release by publishing GPU crates (#5293) @AdamGS\r\n* chore: make ArrayAccessor infallible (#5303) @a10y\r\n* move vortex-dict into vortex-array (#5289) @onursatici\r\n* Pipeline Calling Convention 2 (#5291) @gatesn\r\n* Clarify calling convention for pipeline kernels (#5286) @gatesn\r\n* API and partial implementation of sparse pipelined exection (#5284) @gatesn\r\n* chore: add slack to readme (#5281) @lwwmanning\r\n* document reproducible writes (#5280) @onursatici\r\n* chore[array\u002Fexpr]: move `vortex-expr` into `vortex_array::expr` (#5269) @joseph-isaacs\r\n* chore: serialize for `Mask` (#5267) @blaginin\r\n\u003C\u002Fdetails>\r\n","2025-11-17T16:07:49"]