Skip to content

Latest commit

 

History

History
 
 

rust

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Native Rust implementation of Apache Arrow

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