deltabridge
Thin Python wrapper for reading Delta tables from object storage (currently Azure Blob Storage) or a local filesystem, with low and stable latency. Optimized for repeated reads from long-running Python services. A typical use case is exposing the final products of a data pipeline via a REST API, where request latency should stay predictable.
Note: The efficiency is achieved by using Rust-based loading of Delta tables through delta-rs and automatic incremental caching of Delta transaction logs.
Installation
pip install deltabridge
Or, with uv:
uv add deltabridge
Usage
Storage access (own credentials)
Azure
import os
import deltalake
import polars as pl
from deltabridge import PartitionFilterOperator
from deltabridge.azure import AzureDeltaClient
azure_delta_client = AzureDeltaClient()
# Reuse this client across reads; each load refreshes the table as needed.
table_client = azure_delta_client.get_table_client(
table_uri=os.environ['MY_TABLE_STORAGE_URI'],
)
# Get a DeltaTable instance
delta_table: deltalake.DeltaTable = table_client.load_as_delta()
# Load the data as a Polars LazyFrame
table_ldf: pl.LazyFrame = table_client.load_as_polars()
# Collect to a Polars DataFrame
table_df: pl.DataFrame = table_ldf.filter(pl.col('x') > 3).collect()
# For partitioned tables, push filters down to the partition columns so that
# only matching partitions are read from storage (avoiding a full scan).
# Multiple partition filters are combined using the logical AND operator.
table_df = table_client.load_as_polars(
partition_filter=[
('country', PartitionFilterOperator.IN, ['CZ', 'SK']),
('year', PartitionFilterOperator.EQUAL, '2024'),
],
).collect()
Local filesystem
import polars as pl
from deltabridge.local import LocalDeltaClient
MY_TABLE_PATH = '/tmp/my_table'
# Write a table to a local filesystem
pl.DataFrame({'x': [1, 2, 3]}).write_delta(target=MY_TABLE_PATH)
local_delta_client = LocalDeltaClient()
table_client = local_delta_client.get_table_client(
table_uri=MY_TABLE_PATH # File path can be used as table URI
)
# Load the data as a Polars LazyFrame and collect it into a DataFrame
table_df = table_client.load_as_polars().collect()
print(table_df)
Unity Catalog access (vended credentials)
AzureDatabricksDeltaClient reads the table by its full name with short-lived
credentials vended by Unity Catalog
for that table instead of your own storage credentials, so access follows
Unity Catalog grants:
from deltabridge.azure import AzureDatabricksDeltaClient
databricks_client = AzureDatabricksDeltaClient(
workspace_url='https://adb-1234567890.12.azuredatabricks.net',
)
table_client = databricks_client.get_table_client('catalog.schema.table')
table_df = table_client.load_as_polars().collect()
- External data access must be enabled on the metastore.
- The reading identity needs the
EXTERNAL USE SCHEMAprivilege on the table's schema. - Not supported: views, materialized views, streaming tables, shallow clones, tables shared via Delta Sharing, and tables with row filters, column masks, deletion vectors, column mapping or catalog-managed commits.
Databricks tables can also be read with storage access:
- Use the table's storage location (in Azure Blob Storage) as the table URI.
- You can find it in the Databricks Catalog Explorer UI under Details of the table.
- The reading identity needs at least the Storage Blob Data Reader permission on the storage location (storage account/container).
- Row filters and column masks are not applied.
Writing to Delta tables
deltabridge is read-focused: it provides no write API, and its optimizations don't apply to writes. This is deliberate:
- write use cases are more varied and harder to abstract well - appends, overwrites, merges/upserts, schema evolution and concurrency control all behave differently
- writes are typically handled upstream by the systems that produce the tables (often Spark/PySpark pipelines)
Writing is still possible: load_as_delta() returns a deltalake.DeltaTable with deltabridge's auth already configured, which you can pass to deltalake's write API:
import deltalake
deltalake.write_deltalake(table_client.load_as_delta(), df, mode='append')
Cloud provider support
Object storage support currently covers Azure Blob Storage (plus the local filesystem).
Metadata
Release files for deltabridge 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| deltabridge-1.1.0.tar.gz | 59.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| deltabridge-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.6 kB
Release files / deltabridge-1.1.0.tar.gz
| Download URL | deltabridge-1.1.0.tar.gz |
|---|---|
| Size | 59.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be04218794c53a0d1c69c7462cb8cf12aa21d059b335174f944d16cb2c3942cb
|
|
BLAKE2b-256 checksum How to use checksums |
48e571ee09bc52f3988b8c85c4a0cb90be0c6844e453f8a33bb80cc6c2cc752c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / deltabridge-1.1.0-py3-none-any.whl
| Download URL | deltabridge-1.1.0-py3-none-any.whl |
|---|---|
| Size | 9.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c355e4793c3a4926af970b79ccaeefa05d21a6d81a7d329b9dad728725ea4c73
|
|
BLAKE2b-256 checksum How to use checksums |
0a7f44f84b231f40fa092ff3607f50f3b4cc621460beb1e780f884db5cfbafa7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency log