This is a native Rust implementation of Apache Arrow. Currently the project is developed and tested against nightly Rust. The current status is:
The examples folder shows how to construct some different types of Arrow arrays, including dynamic arrays created at runtime.
Examples can be run using the cargo run --example
command. For example:
cargo run --example builders cargo run --example dynamic_types cargo run --example read_csv
The IPC flatbuffer code was generated by running this command from the root of the project, using flatc version 1.10.0:
./regen.sh
The above script will run the flatc
compiler and perform some adjustments to the source code:
type__
with type_
org::apache::arrow::flatbuffers
namespaceArrow uses the packed_simd crate to optimize many of the implementations in the compute module using SIMD intrinsics. These optimizations are enabled by the simd
feature flag and are turned on by default, but can be disabled, for example:
cargo build --no-default-features
An Arrow committer can publish this crate after an official project release has been made to crates.io using the following instructions.
Follow these instructions to create an account and login to crates.io before asking to be added as an owner of the arrow crate.
Checkout the tag for the version to be released. For example:
git checkout apache-arrow-0.11.0
If the Cargo.toml in this tag already contains version = "0.11.0"
(as it should) then the crate can be published with the following command:
cargo publish
If the Cargo.toml does not have the correct version then it will be necessary to modify it manually. Since there is now a modified file locally that is not committed to GitHub it will be necessary to use the following command.
cargo publish --allow-dirty