Expand description
Library for creating and managing MEM_SIZE bytes 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.
Each Mmap is MEM_SIZE in size, and can be backed by physical memory, a
set of files, or a combination of both. Each page is PAGE_SIZE in size,
meaning that each mmap contains 65536 pages.
Example
use crumbles::Mmap;
let mut mmap = Mmap::new()?;
// 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.
Structs
Constants
- Size of each memory region in bytes. 4GiB.
- Size of each memory page in bytes. 64KiB.