| Crates.io | embedded-savegame |
| lib.rs | embedded-savegame |
| version | 0.3.0 |
| created_at | 2025-12-18 16:37:49.961576+00 |
| updated_at | 2026-01-13 17:13:47.145959+00 |
| description | Savegame library for embedded with power-fail safety and wear leveling |
| homepage | |
| repository | https://github.com/kpcyrd/embedded-savegame |
| max_upload_size | |
| id | 1992805 |
| size | 63,103 |
A no_std savegame library for embedded systems with power-fail safety and wear leveling.
⚠️ Work in progress: The on-disk format may still change with no migration path between versions.
eeprom24x feature)w25q feature)Flash trait)Add to your Cargo.toml:
[dependencies]
embedded-savegame = "0.2"
# Enable support for your flash hardware:
# embedded-savegame = { version = "0.2", features = ["eeprom24x"] }
# embedded-savegame = { version = "0.2", features = ["w25q"] }
use embedded_savegame::storage::{Storage, Slot};
// Configure storage: 64-byte slots, 8 total slots
const SLOT_SIZE: usize = 64;
const SLOT_COUNT: usize = 8;
// Create storage manager with your flash device
let mut storage = Storage::<_, SLOT_SIZE, SLOT_COUNT>::new(flash_device);
// Scan for existing savegame
if let Ok(Some(slot)) = storage.scan() {
let mut buf = [0u8; 256];
if let Ok(Some(data)) = storage.read(slot.idx, &mut buf) {
// Process loaded savegame
process_game_state(data);
}
}
// Write a new savegame
let mut game_data = serialize_game_state();
storage.append(&mut game_data)?;
MIT OR Apache-2.0