6 releases

0.3.0 Oct 11, 2023
0.2.0 Sep 13, 2023
0.1.3 Sep 11, 2023
0.1.0 Aug 30, 2023

#17 in #memory-region

43 downloads per month
Used in 2 crates (via piecrust)

MPL-2.0 license

31KB
544 lines

Library for creating and managing copy-on-write memory-mapped regions.

The core functionality is offered by the Mmap struct, which is a read-write memory region that keeps track of which pages have been written to.

Example

use crumbles::Mmap;

let mut mmap = Mmap::new(65536, 65536)?;

// When first created, the mmap is not dirty.
assert_eq!(mmap.dirty_pages().count(), 0);

mmap[24] = 42;
// After writing a single byte, the page it's on is dirty.
assert_eq!(mmap.dirty_pages().count(), 1);

Limitations

This crate currently only builds for 64-bit Unix targets. This is because it relies on various features of libc which are not available in other targets.

Dependencies

~260KB