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.1.0.tar.gz (90.9 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.1.0-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.1.0-cp312-cp312-macosx_11_0_arm64.whl (29.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

delta_fusion-1.1.0-cp311-cp311-manylinux_2_39_x86_64.whl (35.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

delta_fusion-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (29.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: delta_fusion-1.1.0.tar.gz
  • Upload date:
  • Size: 90.9 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.1.0.tar.gz
Algorithm Hash digest
SHA256 c864a6eb2fed183176dce931ec85f06bfd32572d50cd1246e6a77f44b8d18faf
MD5 24d82fe8ca8b2127e46c89b5ad52dc26
BLAKE2b-256 3c9ce7d9ff12b952046d63fb511eddba076b8f7ea80883986cf5f0922f910a14

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.1.0.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.1.0-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for delta_fusion-1.1.0-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 765cd1028955492a193298e059a5449a665de5909b78a9db5b50a9293bfdd6ad
MD5 bceb5797e6175afb368ece5862b13313
BLAKE2b-256 e1deab93171472c6a3a55d31c48a692fe0b0bf93f16467480f3c104d2104c629

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.1.0-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.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for delta_fusion-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2bd47d41f6d624775dafa78659884e8da288b7e4472ee8d246d7cdfa19163360
MD5 c5583358cec268feefa623a89dcfaf7d
BLAKE2b-256 60b338db605a5aab74ddcfbd213746ba94736b27a8d29cb1c16cca2e93259a2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.1.0-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.1.0-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for delta_fusion-1.1.0-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 b3eb29e4cafe2317468eb7a7b9ba8d411736862212d0f011e0222b8b483eb967
MD5 cf13a098ea6e62a467270c0279470cac
BLAKE2b-256 a0bb50eec2e5a2bb6ab7a71c4f5ce9b2660affd2525b60c0553bd9c8e7109a01

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.1.0-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.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for delta_fusion-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84f895603e60e9c1acd6aa3aa0da73c4873bc575b053e957fd804d10e7bee232
MD5 6cc5b1b16cbbd6f067a32b2ee2c54a63
BLAKE2b-256 380ce7ebc0685af4041fdf327b7870b9a3247b769493dd0460cad4d802458b26

See more details on using hashes here.

Provenance

The following attestation bundles were made for delta_fusion-1.1.0-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