tree: 59c7845d3496887af69644ad043ce3e9aaead13a [path history] [tgz]
  1. arrow/
  2. datafusion/
  3. parquet/
  4. .gitignore
  5. Cargo.toml
  6. Dockerfile
  7. README.md
  8. rust-toolchain
  9. rustfmt.toml
rust/README.md

Native Rust implementation of Apache Arrow

The Rust implementation of Arrow consists of the following crates

CrateDescriptionDocumentation
ArrowCore functionality (memory layout, array builders, low level computations)(README)
ParquetParquet support(README)
DataFusionIn-memory query engine with SQL support(README)

Prerequisites

Before running tests and examples it is necessary to set up the local development enviroment.

Git Submodules

The tests rely on test data that is contained in git submodules.

To pull down this data run the following:

git submodule update --init

This populates data in two git submodules:

Create two new environment variables to point to these directories as follows:

export PARQUET_TEST_DATA=/path/to/arrow/cpp/submodules/parquet-testing/data
export ARROW_TEST_DATA=/path/to/arrow/testing/data/

It is now possible to run cargo test as usual.

Code Formatting

Our CI uses rustfmt to check code formatting. Although the project is built and tested against nightly rust we use the stable version of rustfmt. So before submitting a PR be sure to run the following and check for lint issues:

cargo +stable fmt --all -- --check