This is a starting point for a native Rust implementation of Arrow.
The current code demonstrates arrays of primitive types and structs.
// create a memory-aligned Arrow array from an existing Vec let array = PrimitiveArray::from(vec![1, 2, 3, 4, 5]); println!("array contents: {:?}", array.iter().collect::<Vec<i32>>());
let mut builder: Builder<i32> = Builder::new(); for i in 0..10 { builder.push(i); } let buffer = builder.finish(); let array = PrimitiveArray::from(buffer); println!("array contents: {:?}", array.iter().collect::<Vec<i32>>());
Examples can be run using the cargo run --example
command. For example:
cargo run --example array_from_builder
cargo test