| Crates.io | crumbles |
| lib.rs | crumbles |
| version | 0.3.1 |
| created_at | 2023-08-30 10:04:50.798827+00 |
| updated_at | 2025-12-02 16:23:07.920442+00 |
| description | Keeping track of your pie's crumbles |
| homepage | |
| repository | https://github.com/dusk-network/piecrust |
| max_upload_size | |
| id | 958851 |
| size | 85,251 |
Crumbles is a Rust library designed for creating and managing copy-on-write memory-mapped regions. This allows for efficient memory handling by tracking changes at page level. It's particularly suitable for scenarios where memory snapshots and reverting to previous states are required.
The core functionality of Crumbles is provided by the Mmap struct. This struct offers methods to manage memory regions, create snapshots and revert/apply changes.
Add crumbles as a dependency to your contract project:
cargo add crumbles
To make use of crumbles, import the dependency in your project. Example:
use crumbles::Mmap;
use std::io;
fn main() -> io::Result<()> {
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);
Ok(())
}
To build and test the crate you will need a Rust toolchain. Use the following commands to run the tests:
cargo test
To see the release history for this crate, please see the CHANGELOG file.
This code is licensed under the Mozilla Public License Version 2.0 (MPL-2.0). Please see the LICENSE for further details.
If you want to contribute to this project, please check the CONTRIBUTING file.