Website | Guides | API Docs | Chat
DataFusion is a very fast, extensible query engine for building high-quality data-centric systems in Rust, using the Apache Arrow in-memory format. Python Bindings are also available. DataFusion offers SQL and Dataframe APIs, excellent performance, built-in support for CSV, Parquet, JSON, and Avro, extensive customization, and a great community.
Here are links to some important information
- Project Site
- Installation
- Rust Getting Started
- Rust DataFrame API
- Rust API docs
- Rust Examples
- Python DataFrame API
- Architecture
DataFusion is great for building projects such as domain specific query engines, new database platforms and data pipelines, query languages and more. It lets you start quickly from a fully working engine, and then customize those features specific to your use. Click Here to see a list known users.
Please see the contributor guide and communication pages for more information.
This crate has several features which can be specified in your Cargo.toml
.
Default features:
array_expressions
: functions for working with arrays such asarray_to_string
compression
: reading files compressed withxz2
,bzip2
,flate2
, andzstd
crypto_expressions
: cryptographic functions such asmd5
andsha256
datetime_expressions
: date and time functions such asto_timestamp
encoding_expressions
:encode
anddecode
functionsparquet
: support for reading the Apache Parquet formatregex_expressions
: regular expression functions, such asregexp_match
unicode_expressions
: Include unicode aware functions such ascharacter_length
unparser
: enables support to reverse LogicalPlans back into SQL
Optional features:
avro
: support for reading the Apache Avro formatbacktrace
: include backtrace information in error messagespyarrow
: conversions between PyArrow and DataFusion typesserde
: enable arrow-schema'sserde
feature
DataFusion's Minimum Required Stable Rust Version (MSRV) policy is to support each stable Rust version for 6 months after it is released. This generally translates to support for the most recent 3 to 4 stable Rust versions.
We enforce this policy using a MSRV CI Check