Skip to main content

High-performance Delta Lake query engine for Python

Project description

deltaFusion

High-performance Delta Lake query engine for Python, powered by Rust.

License: MIT

Overview

deltaFusion provides SQL query capabilities over Delta Lake tables using DataFusion as the query engine. Data is transferred via zero-copy Apache Arrow for maximum performance.

Key Features

  • SQL Queries: Full SQL support via DataFusion
  • Zero-Copy Transfer: Arrow-based data exchange with Python (no serialization overhead)
  • Time Travel: Query specific table versions
  • Storage Support: Local filesystem and S3-compatible storage
  • GIL Release: Python threads remain active during Rust operations

Installation

# From source (requires Rust toolchain and maturin)
pip install maturin
maturin develop --release

Quick Start

from delta_fusion import DeltaEngine

# Create engine
engine = DeltaEngine()

# Register a Delta table
engine.register_table("sales", "/path/to/delta/table")

# Query with SQL (returns PyArrow RecordBatches)
batches = engine.query("SELECT * FROM sales WHERE year = 2024")

# Convert to pandas
import pyarrow as pa
table = pa.Table.from_batches(batches)
df = table.to_pandas()

# Or get results as list of dicts (for small datasets)
rows = engine.query_to_dicts("SELECT * FROM sales LIMIT 10")

S3 Storage

# Option 1: Environment variables
# AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION

# Option 2: Explicit configuration
engine = DeltaEngine({
    "aws_access_key_id": "...",
    "aws_secret_access_key": "...",
    "aws_region": "us-east-1",
    "aws_endpoint": "http://localhost:9000",  # For MinIO
    "aws_allow_http": True
})

engine.register_table("data", "s3://bucket/delta-table")

Time Travel

# Query a specific version
engine.register_table("sales", "/path/to/table", version=5)

# Get table metadata
info = engine.table_info("/path/to/table")
print(f"Version: {info['version']}, Files: {info['num_files']}")

Development

# Build for development
maturin develop

# Run Rust tests
cargo test --no-default-features

# Run Python tests
pytest

# Check and format
cargo check
cargo clippy
cargo fmt

Architecture

src/
├── lib.rs       # Module entry point
├── config.rs    # Storage configuration
├── error.rs     # Error types
├── engine.rs    # DeltaEngine (DataFusion integration)
└── python.rs    # PyO3 bindings

python/delta_fusion/
├── __init__.py  # Python API
└── __init__.pyi # Type stubs

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

delta_fusion-1.0.2.tar.gz (86.2 kB view details)

Uploaded Source

Built Distributions

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

delta_fusion-1.0.2-cp312-cp312-manylinux_2_39_x86_64.whl (35.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

delta_fusion-1.0.2-cp312-cp312-macosx_11_0_arm64.whl (29.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

delta_fusion-1.0.2-cp311-cp311-manylinux_2_39_x86_64.whl (35.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

delta_fusion-1.0.2-cp311-cp311-macosx_11_0_arm64.whl (29.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file delta_fusion-1.0.2.tar.gz.

File metadata

  • Download URL: delta_fusion-1.0.2.tar.gz
  • Upload date:
  • Size: 86.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for delta_fusion-1.0.2.tar.gz
Algorithm Hash digest
SHA256 ca6a212d736f39343d74315ba155695897cffcfef75dd09980961155ba927057
MD5 63d10b89547047d44dca1019639d38bf
BLAKE2b-256 186fd0d8ed0a2fff3a8aa65e1cbc227d5f8aa8c2b54620a3ba26e0558ab49229

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.0.2.tar.gz:

Publisher: publish.yml on ingkle-oss/deltaFusion

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

File details

Details for the file delta_fusion-1.0.2-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for delta_fusion-1.0.2-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 6b1e4a6b47755ed6cfd3f9775286e3504efb0a471eab3711ebb86b2098217073
MD5 5b363b70044d44a56b524aa6a45d8362
BLAKE2b-256 9f4559d8a699ca42267db6eaac23b1fbfe5e803e40d3fc5cbabb038f211ff051

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.0.2-cp312-cp312-manylinux_2_39_x86_64.whl:

Publisher: publish.yml on ingkle-oss/deltaFusion

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

File details

Details for the file delta_fusion-1.0.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for delta_fusion-1.0.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e06a48f5e18cb16bbd18c750b51870a326c60b6e7a6baa0693baac16690cbec
MD5 50cb3d14c455395fd768fc3f17f48dbb
BLAKE2b-256 e0f5847fe5f2c7173ece4e896571dfbbf06aad4c56fed548c0376827eb87ae83

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.0.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on ingkle-oss/deltaFusion

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

File details

Details for the file delta_fusion-1.0.2-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for delta_fusion-1.0.2-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 94d3b7843f9d085fc8d3849f63d5104eb57d7eff53291c55572adc6198105cb8
MD5 c0464d3aa2177b3faaeb8ba4de51f162
BLAKE2b-256 794dcfded0cdfdf99d48ce5a43c31e2f1d165ab453e2118658594a8d2e34f7c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.0.2-cp311-cp311-manylinux_2_39_x86_64.whl:

Publisher: publish.yml on ingkle-oss/deltaFusion

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

File details

Details for the file delta_fusion-1.0.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for delta_fusion-1.0.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c50bb3b6810e1aaed45d9d7b94a8498cda4e9c8518ba6334028338cace990a00
MD5 b9a07bd0441e02c5ce66cea58e572556
BLAKE2b-256 9f815c815997e2951b9d4fa5890ebed0747a6535cd15f874b7357aa9f37aadd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.0.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on ingkle-oss/deltaFusion

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