Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

delta_kernel is available on crates.io and uses Cargo feature flags to keep the core dependency-light.

Requirements

  • Rust edition: 2021
  • Minimum Rust version: 1.88

Adding the dependency

Add delta_kernel to your Cargo.toml:

[dependencies]
delta_kernel = { version = "0.21", features = ["default-engine-rustls", "arrow"] }

This gives you the default engine (which handles all I/O and expression evaluation for you) backed by Arrow, with rustls for TLS. This is the recommended starting point for most users.

Feature flags

You only pay for what you enable.

Engine features

These enable the built-in DefaultEngine, which provides out-of-the-box support for reading and writing Delta tables using Arrow and the object_store crate.

FeatureDescription
default-engine-rustlsDefault engine with rustls for TLS. Recommended for most users.
default-engine-native-tlsDefault engine using your platform’s native TLS (OpenSSL on Linux, Schannel on Windows, Secure Transport on macOS). Use this if rustls doesn’t work in your environment.
arrowRe-exports Arrow types at the version the kernel was built against. Enables arrow-conversion and arrow-expression implicitly via the default engine features. Currently maps to Arrow 58.

You need exactly one of default-engine-rustls or default-engine-native-tls to use the default engine. If you’re building a custom engine, you may not need either. See Building a Connector for details.

Arrow version pinning

If you need a specific Arrow version (e.g. to match your existing Arrow dependency), you can pin it explicitly:

FeatureArrow version
arrow-58Arrow 58 (current default)
arrow-57Arrow 57

For more details on managing Arrow version compatibility, see Feature Flags.

Data features

FeatureDescription
arrow-conversionEnables converting between kernel types and Arrow types
arrow-expressionEnables evaluating kernel expressions over Arrow data

These are pulled in automatically by the default engine features. You typically only need to specify them directly if you’re building a custom engine that still uses Arrow.

Advanced features

FeatureDescription
internal-apiExposes additional APIs that are not yet fully stabilized. Some examples in this guide require this feature.
schema-diffEnables experimental schema diffing functionality.

Example Cargo.toml

A typical project using delta kernel:

[package]
name = "my-delta-reader"
version = "0.1.0"
edition = "2021"

[dependencies]
delta_kernel = { version = "0.21", features = ["default-engine-rustls", "arrow"] }

# The kernel re-exports arrow, but you can also depend on it directly
# arrow = "58"

What’s next

With the dependency added, head to Quick Start: Reading a Table to read your first Delta table.