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

#18 in #memory-region

Download history 8/week @ 2024-07-19 12/week @ 2024-07-26 11/week @ 2024-08-02 14/week @ 2024-08-09 26/week @ 2024-08-16 9/week @ 2024-08-23 14/week @ 2024-08-30 23/week @ 2024-09-06 17/week @ 2024-09-13 42/week @ 2024-09-20 77/week @ 2024-09-27 40/week @ 2024-10-04 66/week @ 2024-10-11 84/week @ 2024-10-18 37/week @ 2024-10-25 54/week @ 2024-11-01

247 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