npy 0.4.0

NumPy file format (de-)serialization
Documentation

#[macro_use]
extern crate npy_derive;
extern crate npy;

use std::io::Read;

#[derive(Serializable, Debug, PartialEq, Clone)]
struct Array {
    a: i32,
    b: f32,
}

fn main() {
    let pi = std::f32::consts::PI;
    let mut arrays = vec![];
    for i in 0..360i32 {
        arrays.push(Array { a: i, b: (i as f32 * pi / 180.0).sin() });
    }

    npy::to_file("examples/roundtrip.npy", arrays).unwrap();

    let mut buf = vec![];
    std::fs::File::open("examples/roundtrip.npy").unwrap()
        .read_to_end(&mut buf).unwrap();

    for (i, arr) in npy::NpyData::from_bytes(&buf).unwrap().into_iter().enumerate() {
        assert_eq!(Array { a: i as i32, b: (i as f32 * pi / 180.0).sin() }, arr);
    }
}