#imgui #memory #editor


Rust bindings for imgui memory editor

7 releases

new 0.3.0 Aug 2, 2021
0.2.1 Jan 14, 2021
0.1.3 Jun 10, 2020
0.1.2 May 30, 2020

#68 in GUI


307 lines

Dear ImGui Memory Editor Rust Bindings

Latest release on crates.io Documentation on docs.rs


This package is intended to be used with imgui-rs.

You can either use memory using a custom struct and closures or a slice.

Using a Slice

let mut vec = vec![0xFF; 0x100];
// Can also use a &mut [u8] if you want to use the editor to modify the slice
let mut memory_editor = MemoryEditor::<&[u8]>::new()
    .draw_window(im_str!("Memory")) // Can omit if you don't want to create a window

// In your main loop, draw the memory editor with draw_vec()
if memory_editor.open() { // open() can be omitted if draw_window was not used
    memory_editor.draw_vec(&ui, &mut vec)

Using a Custom Struct

let mut mem = Memory::new(); // Custom struct
let mut times_written = 0; // Variable captured in closure
let mut memory_editor = MemoryEditor::<Memory>::new()
    .read_fn(|mem, offset| mem.read(offset))
    .write_fn(|mem, offset, value| {
        times_written += 1; // Variable used in closure
        println!("Written {} times", times_written);

// In your main loop, draw the memory editor with draw()
if memory_editor.open() {
    memory_editor.draw(&ui, &mut mem)


~60K SLoC