An extensible, state-of-the-art framework for columnar compression, and the fastest FOSS columnar file format. Formerly at @spiraldb, now an Incubation Stage project at LFAI&Data, part of the Linux Foundation.
3,196
stars
6,737
commits
Rust
primary language
Sep 16, 2026
updated
Join the community on Slack! | Documentation | Performance Benchmarks
If you are interested in closer collaboration, please email info@vortex.dev
Vortex is a next-generation columnar file format and toolkit designed for high-performance data processing. It is the fastest and most extensible format for building data systems backed by object storage. It provides:
Blazing Fast Performance
Extensible Architecture
Open Source, Neutral Governance
Integrations
🟢 Development Status: Library APIs may change from version to version, but we now consider the file format stable. From release 0.36.0, all future releases of Vortex should maintain backwards compatibility of the file format (i.e., be able to read files written by any earlier version >= 0.36.0).
Vortex strictly separates logical and physical concerns:
All features are exported through the main vortex crate.
cargo add vortex
uv add vortex-data
For browsing the structure of Vortex files, you can use the vx command-line tool.
# Install pre-built binary (fast, recommended)
cargo binstall vortex-tui
# Or build from source
cargo install vortex-tui --locked
# Or run via Python without installing
uvx --from vortex-data vx --help
# Usage
vx browse <file>
# Optional but recommended dependencies
brew install flatbuffers protobuf # For .fbs and .proto files
brew install duckdb # For benchmarks
# Install Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# or
brew install rustup
# Initialize submodules
git submodule update --init --recursive
# Setup dependencies with uv
uv sync --all-packages
See the development workflows for Python binding and documentation development, including Maturin rebuilds, targeted tests, and documentation checks.
rust-toolchain.toml pins the toolchain used for development and CI, and is kept on the latest
stable release. Building Vortex as a dependency only requires a toolchain that satisfies the
Rust version compatibility policy.
Use vx-bench to run benchmarks comparing engines (DataFusion, DuckDB) and formats (Parquet, Vortex):
# Install the benchmark orchestrator
uv tool install "bench_orchestrator @ ./bench-orchestrator/"
# Run TPC-H benchmarks
vx-bench run tpch --engine datafusion,duckdb --format parquet,vortex
# Compare results
vx-bench compare --run latest
See bench-orchestrator/README.md for full documentation.
For optimal performance, we suggest using MiMalloc:
#[global_allocator]
static GLOBAL_ALLOC: MiMalloc = MiMalloc;
The policy: Vortex supports the four most recent stable minor releases. Writing the latest
stable release as 1.N, that means 1.N, 1.N-1, 1.N-2, and 1.N-3 all build Vortex, so the
three minor releases older than the latest stable release. Only the minor version is constrained;
Minimum Supported Rust Version (MSRV) declared in Cargo.toml must be no newer than 1.N-3,
patch releases are never a factor.
An MSRV older than 1.N-3 is always acceptable — supporting extra releases cannot break the
guarantee. An MSRV newer than 1.N-3 does not meet the policy. For example, once 1.98 is the
latest stable release:
| Declared MSRV | Status |
|---|---|
1.94 or older | Acceptable — supports more releases than required |
1.95 | Exactly on policy |
1.96 or newer | Does not meet the policy |
The MSRV is raised in occasional deliberate steps rather than on every Rust release, so it drifts relative to that bound.
How the policy is applied:
rust-version in the root Cargo.toml, and inherited by every
crate in the workspace. That value, not this document, is the source of truth.rust-toolchain.toml tracks the latest stable release and is independent
of the MSRV. It is what contributors and most CI jobs build with.Rust (MSRV) job, which builds the publishable crates with
exactly that toolchain. When it fails, the first choices are to express the code without the
newer Rust feature, or to hold back the dependency update that raised the requirement. Raising
rust-version is a last resort.Licensed under the Apache License, Version 2.0.
Vortex is an independent open-source project and not controlled by any single company. The Vortex Project is a sub-project of the Linux Foundation Projects. The governance model is documented in CONTRIBUTING.md and is subject to the terms of the Technical Charter.
Please do read CONTRIBUTING.md before you contribute.
If you discover a security vulnerability, please email security@vortex.dev. See SECURITY.md for our full security policy, including emergency reporting and CRA stewardship.
Copyright © Vortex a Series of LF Projects, LLC. For terms of use, trademark policy, and other project policies please see https://lfprojects.org
The Vortex project benefits enormously from groundbreaking work from the academic & open-source communities.
(top 30 of 78)
Rust
84.5%
Cuda
4.8%
Python
4.2%
Java
2.8%
C++
1.5%
TypeScript
1.0%
An extensible, state-of-the-art framework for columnar compression, and the fastest FOSS columnar file format. Formerly at @spiraldb, now an Incubation Stage project at LFAI&Data, part of the Linux Foundation.
3,196
stars
6,737
commits
Rust
primary language
Sep 16, 2026
updated
Join the community on Slack! | Documentation | Performance Benchmarks
If you are interested in closer collaboration, please email info@vortex.dev
Vortex is a next-generation columnar file format and toolkit designed for high-performance data processing. It is the fastest and most extensible format for building data systems backed by object storage. It provides:
Blazing Fast Performance
Extensible Architecture
Open Source, Neutral Governance
Integrations
🟢 Development Status: Library APIs may change from version to version, but we now consider the file format stable. From release 0.36.0, all future releases of Vortex should maintain backwards compatibility of the file format (i.e., be able to read files written by any earlier version >= 0.36.0).
Vortex strictly separates logical and physical concerns:
All features are exported through the main vortex crate.
cargo add vortex
uv add vortex-data
For browsing the structure of Vortex files, you can use the vx command-line tool.
# Install pre-built binary (fast, recommended)
cargo binstall vortex-tui
# Or build from source
cargo install vortex-tui --locked
# Or run via Python without installing
uvx --from vortex-data vx --help
# Usage
vx browse <file>
# Optional but recommended dependencies
brew install flatbuffers protobuf # For .fbs and .proto files
brew install duckdb # For benchmarks
# Install Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# or
brew install rustup
# Initialize submodules
git submodule update --init --recursive
# Setup dependencies with uv
uv sync --all-packages
See the development workflows for Python binding and documentation development, including Maturin rebuilds, targeted tests, and documentation checks.
rust-toolchain.toml pins the toolchain used for development and CI, and is kept on the latest
stable release. Building Vortex as a dependency only requires a toolchain that satisfies the
Rust version compatibility policy.
Use vx-bench to run benchmarks comparing engines (DataFusion, DuckDB) and formats (Parquet, Vortex):
# Install the benchmark orchestrator
uv tool install "bench_orchestrator @ ./bench-orchestrator/"
# Run TPC-H benchmarks
vx-bench run tpch --engine datafusion,duckdb --format parquet,vortex
# Compare results
vx-bench compare --run latest
See bench-orchestrator/README.md for full documentation.
For optimal performance, we suggest using MiMalloc:
#[global_allocator]
static GLOBAL_ALLOC: MiMalloc = MiMalloc;
The policy: Vortex supports the four most recent stable minor releases. Writing the latest
stable release as 1.N, that means 1.N, 1.N-1, 1.N-2, and 1.N-3 all build Vortex, so the
three minor releases older than the latest stable release. Only the minor version is constrained;
Minimum Supported Rust Version (MSRV) declared in Cargo.toml must be no newer than 1.N-3,
patch releases are never a factor.
An MSRV older than 1.N-3 is always acceptable — supporting extra releases cannot break the
guarantee. An MSRV newer than 1.N-3 does not meet the policy. For example, once 1.98 is the
latest stable release:
| Declared MSRV | Status |
|---|---|
1.94 or older | Acceptable — supports more releases than required |
1.95 | Exactly on policy |
1.96 or newer | Does not meet the policy |
The MSRV is raised in occasional deliberate steps rather than on every Rust release, so it drifts relative to that bound.
How the policy is applied:
rust-version in the root Cargo.toml, and inherited by every
crate in the workspace. That value, not this document, is the source of truth.rust-toolchain.toml tracks the latest stable release and is independent
of the MSRV. It is what contributors and most CI jobs build with.Rust (MSRV) job, which builds the publishable crates with
exactly that toolchain. When it fails, the first choices are to express the code without the
newer Rust feature, or to hold back the dependency update that raised the requirement. Raising
rust-version is a last resort.Licensed under the Apache License, Version 2.0.
Vortex is an independent open-source project and not controlled by any single company. The Vortex Project is a sub-project of the Linux Foundation Projects. The governance model is documented in CONTRIBUTING.md and is subject to the terms of the Technical Charter.
Please do read CONTRIBUTING.md before you contribute.
If you discover a security vulnerability, please email security@vortex.dev. See SECURITY.md for our full security policy, including emergency reporting and CRA stewardship.
Copyright © Vortex a Series of LF Projects, LLC. For terms of use, trademark policy, and other project policies please see https://lfprojects.org
The Vortex project benefits enormously from groundbreaking work from the academic & open-source communities.
(top 30 of 78)
Rust
84.5%
Cuda
4.8%
Python
4.2%
Java
2.8%
C++
1.5%
TypeScript
1.0%