Skip to main content

Python bindings for Vortex, an Apache Arrow-compatible toolkit for working with compressed array data.

Reason this release was yanked:

Renamed to vortex-data

Project description

🌪️ Vortex

Build Status Crates.io Documentation PyPI - Python Version

📚 Documentation | 📊 Performance Benchmarks

Overview

Vortex is a next-generation columnar file format and toolkit designed for high-performance data analytics. It provides:

  • ⚡️ Blazing Fast Performance

    • 100-200x faster random access reads than Apache Parquet
    • 2-10x faster scans with similar compression ratios and write throughput
    • Efficient support for wide tables with zero-copy/zero-parse metadata
  • 🔧 Extensible Architecture

    • Modeled after Apache DataFusion's extensible approach
    • Pluggable encoding system
    • Zero-copy compatibility with Apache Arrow

🚧 Development Status: This project is under active development. APIs and file formats may change, and some features are still being implemented.

Key Features

Core Capabilities

  • Logical Types - Clean separation between logical schema and physical layout
  • 🔄 Zero-Copy Arrow Integration - Seamless conversion to/from Apache Arrow arrays
  • 🧩 Extensible Encodings - Pluggable physical layouts with built-in optimizations
  • 📦 Cascading Compression - Support for nested encoding schemes
  • 🚀 High-Performance Computing - Optimized compute kernels for encoded data
  • 📊 Rich Statistics - Lazy-loaded summary statistics for optimization

Technical Architecture

Logical vs Physical Design

Vortex strictly separates logical and physical concerns:

  • Logical Layer: Defines data types and schema
  • Physical Layer: Handles encoding and storage implementation
  • Built-in Encodings: Compatible with Apache Arrow's memory format
  • Extension Encodings: Optimized compression schemes (RLE, dictionary, etc.)

Quick Start

Installation

Rust Crate

All features are exported through the main vortex crate.

cargo add vortex

Python Package

uv add vortex-array

Command Line UI (vx)

For browsing the structure of Vortex files, you can use the vx command-line tool.

# Install latest release
cargo install vortex-tui --locked

# Or build from source
cargo install --path vortex-tui --locked

# Usage
vx browse <file>

Development Setup

Prerequisites (macOS)

# 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

Performance Optimization

For optimal performance, use MiMalloc:

#[global_allocator]
static GLOBAL_ALLOC: MiMalloc = MiMalloc;

Project Information

License

Licensed under the Apache License, Version 2.0

Governance

Vortex is committed to remaining open-source, following governance models inspired by the Substrait project and Apache Software Foundation.

Contributing

See CONTRIBUTING.md for guidelines.

Acknowledgments 🏆

This project builds upon groundbreaking work from the academic and open-source communities:

Key Research Papers

Open Source Inspiration


Thanks to all contributors who have shared their knowledge and code with the community! 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vortex_array-0.30.0.tar.gz (645.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

vortex_array-0.30.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

vortex_array-0.30.0-cp310-abi3-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

vortex_array-0.30.0-cp310-abi3-macosx_10_12_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file vortex_array-0.30.0.tar.gz.

File metadata

  • Download URL: vortex_array-0.30.0.tar.gz
  • Upload date:
  • Size: 645.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for vortex_array-0.30.0.tar.gz
Algorithm Hash digest
SHA256 f3b3dbc708bfa642b30793dbb6ebb42142c4408bb52f29380b8b9330c34abe0c
MD5 f84e631b77990cf45cd2a3573b421ee3
BLAKE2b-256 28b63917ec4f807e1f81aefd3cc91eedaf97815eebce246fee60834d3642d12d

See more details on using hashes here.

Provenance

The following attestation bundles were made for vortex_array-0.30.0.tar.gz:

Publisher: release-plz.yml on spiraldb/vortex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vortex_array-0.30.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vortex_array-0.30.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7fc9d4ac935950851097931f97789add5e5884ee5327f19cd1ee42b9305fa4e3
MD5 09fae1e03346bda1078f65c8237f1dcb
BLAKE2b-256 f6dad47471b9b7ddfd234226a9e53327c3607fbf8a75f18a8c295d097cfff8fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for vortex_array-0.30.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-plz.yml on spiraldb/vortex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vortex_array-0.30.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vortex_array-0.30.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40838cd86cfb134d70b3e653bcbb7fd0dc4be0156a74b701dff25ee11f46e2e0
MD5 f6eac2302361aa6399715c02db3950f7
BLAKE2b-256 985eef697728b7b728858981b632ad66b70d148334fd616c492216945a91ebb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for vortex_array-0.30.0-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release-plz.yml on spiraldb/vortex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vortex_array-0.30.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for vortex_array-0.30.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5492a77b63ecec9df59c2970c096b573b4b14432a4c561cdc478a5a9c06d4fde
MD5 ccc9bbcf39afc45f364e9fb9b5f27ada
BLAKE2b-256 7e3494679f524bb69163690014f1a8322391f015d3f4ba2d20b8a2e443dc3d5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vortex_array-0.30.0-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release-plz.yml on spiraldb/vortex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page