This tool tries to visualize Rust's memory management, especially ownership transfer and borrows. Aiming to make these concepts easier to grasp for beginners, and experienced programmers switching from other languages.
This project was part of my master's thesis at the Julius-Maximilians-University Würzburg.
For now it is a standalone program, but IDE integration may be something to look into for the future.

struct test<'a, 'b> {} will be treated as struct test<'a, 'a> {}asyncunsafe (interior mutability, inline assembly, etc.)Check chapter 6.1 of the thesis for a more detailed breakdown of the limitations.
boris_shared: data structures shared between the backend analysis, and rendering codeboris_analysis: the core analysis code, depending on rust analyzerboris_renderer: code for rendering the analysis resultsboris_app: a standalone app, combining the analysis backend with a very basic frontend windowboris_viewer: a WASM compatible frontend, for embedding into websites (without the analysis backend)boris_exporter: an internal tool for exporting/serializing analysis outputs, and creating graphics for the thesisApp:
cargo run -p boris_app --release to run the main applicationWASM Viewer:
trunk serve in the boris_viewer folder for running the web viewer application locally. More information about deploying can be found here../example/export/bodies/ folder (see ./project/boris_viewer/examples.rs)url/#example_name (e.g., https://christianschott.github.io/boris-viewer/#ownership)It is based on the powerful rust-analyzer crate, making this whole project even possible. For the rendering it utilizes egui, as it provided a very fast and simple way for drawing to the screen.
$ claude mcp add boris \
-- python -m otcore.mcp_server <graph>