tree: bbb1abf2c95c5169a9adf58b32940e95f46cdae6 [path history] [tgz]
  1. benches/
  2. examples/
  3. src/
  4. .gitignore
  5. Cargo.toml
  6. README.md
rust/README.md

Native Rust implementation of Apache Arrow

Build Status Coverage Status

Status

This is a starting point for a native Rust implementation of Arrow.

The current code demonstrates arrays of primitive types and structs.

Creating an Array from a Vec

// create a memory-aligned Arrow array from an existing Vec
let array = Array::from(vec![1,2,3,4,5]);

match array.data() {
    &ArrayData::Int32(ref buffer) => {
        println!("array contents: {:?}", buffer.iter().collect::<Vec<i32>>());
    }
    _ => {}
}

Creating an Array from a Builder

let mut builder: Builder<i32> = Builder::new();
for i in 0..10 {
    builder.push(i);
}
let buffer = builder.finish();
let array = Array::from(buffer);

Run Examples

Examples can be run using the cargo run --example command. For example:

cargo run --example array_from_builder

Run Tests

cargo test