Project

deltalake

0.13
There's a lot of open issues
A placeholder for the Delta Lake ruby gem
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
 Dependencies

Development

~> 2.0
~> 10.0
 Project Readme

delta-rs

Build Status Crate Docs Python binding Docs

Delta-rs logo

A native interface to Delta Lake.

Table of Contents
  • About
    • Features
  • Get Involved
    • Development Meeting
    • Development
    • Rust
    • Python
    • Ruby

About

This library provides low level access to Delta tables in Rust, which can be used with data processing frameworks like datafusion, ballista, rust-dataframe, vega, etc. It also provides bindings to other higher level languages such as Python, Ruby, or Golang.

Features

Supported backends:

  • Local file system

  • AWS S3

  • Azure Data Lake Storage Gen 2

  • ❌ Google Cloud Storage see #56

Table 1. Support features
Operation/Feature Rust Python Ruby

Read table

✔️

✔️

✔️

Stream table update

✔️

Filter files with partitions

✔️

✔️

Vacuum (delete stale files)

#97

#97

Write transactions

✔️

Checkpoint creation

#106

High-level file writer

Optimize

#98

Get Involved

Development Meeting

We have a standing development sync meeting for those that are interested. The meeting is held every two weeks at 9am PST on Tuesday mornings. The direct meeting URL is shared in the Slack channel above ☝️ before the meeting.

These meetings are also streamed live via YouTube if you just want to listen in.

Development

delta-rs requires the Rust compiler, which can be installed with the rustup command.

Running tests can be done with cargo test in the root directory, or one of the directories below:

Rust

The rust/ directory contains core Rust APIs for accessing Delta Lake from Rust, or for higher-level language bindings.

Python

The python/ directory contains the deltalake Python package built on top of delta-rs

Ruby

The ruby/ directory contains an early prototype of a Ruby library built on top of delta-rs