#mmap #memory #memory-mapped #file #mapping #low-level #memory-map

easy_mmap

Strongly typed memory mapped files that allow for easy manipulation of large amounts of data

7 releases

0.3.1 Aug 29, 2022
0.3.0 Aug 29, 2022
0.2.3 Aug 27, 2022
0.1.1 Aug 24, 2022

#465 in Memory management


Used in graph_csr

MIT license

17KB
396 lines

easy_mmap

Note: This crate is still in early development!

This library provides a simple to user interface to manipulate memory mapped memory by forcing the usage of Rust's strong typing system. It's a simple abstraction over the mmap crate.

It further abstracts the memory mapped region by also supporting iterators and easy local updates.

Example usage:

use easy_mmap::EasyMmapBuilder;
use mmap::MapOption;

fn main() {
    let map = &mut EasyMmapBuilder::<u32>::new()
        .capacity(10)
        .options(&[MapOption::MapReadable, MapOption::MapWritable])
        .build();

    map.iter_mut()
        .enumerate()
        .for_each(|(idx, x)| *x = idx as u32);

    map.iter().for_each(|v| {
        print!("{} ", v);
    });
}

Dependencies

~2MB
~33K SLoC