asammdf ========== Read and write ASAM MDF file, simply and efficiently. Currently under development, and not ready for production use. Features -------- * Fast, use rust & mmap(todo) to boost parsing and writing speed. * Support MDFv3(up to 3.3), and MDFv4(up to 4.1). * For MDF v4.1, support DZ block which compress data using deflate or transpose method. * Easy to use with multi-thread program. Examples -------- Read a MDFv3 file, and then write data which recordindex=0 to console. ```rust use asammdf::{MDFFile,SpecVer,v3,MDFObject,IDObject, ValueFormat}; let mut file = MDFFile::new(); file.open("./mdf3.dat").unwrap(); let idblock = file.get_id::().unwrap(); // MDF file's magic header is "MDF " assert_eq!(idblock.file_id(), "MDF "); assert_eq!(idblock.version(), 300); // get all channel blocks out of MDF file let iter = file.get_node_ids::().unwrap().into_iter(); // get all record data with recordindex=0 of these channel blocks let _: Vec = iter.map(|node_id| { let data = file.get_data_cnblock(ValueFormat::Physical, node_id, 0); let name = file.get_node_by_id::(node_id).unwrap().name(); println!("({name},{data})"); data }) .collect(); ```