Rustowl is a diagnostic system and language server protocol extension that maps variable validity and data flow directly into text editors. It serves as a memory management tool designed to visualize lifetime constraints and ownership movement within Rust source code.
The project distinguishes itself by providing a visual representation of immutable borrowings, mutable borrowings, and value moves. It specifically tracks the duration of variable validity and identifies invalid overlapping references or lifetime mismatches to assist in memory debugging.
The system employs static analysis to track data flow and calculate lifetime intervals. This analysis is streamed to the editor as metadata, allowing for the rendering of non-textual UI overlays and diagnostic markers that illustrate how values move through a program.