RustOwl is a visualization tool for Rust that helps developers understand ownership movement and variable lifetimes. By analyzing source code when saved, it provides visual feedback through colored underlines to indicate lifetime, immutable/mutable borrowing, and value movement. This helps in debugging complex lifetime issues and optimizing code.
The tool supports major editors like VS Code, Neovim, and Emacs through extensions and an LSP server. It offers features like automatic analysis on save, customizable highlight colors, and detailed visualization of lifetime errors. RustOwl can be installed via Cargo, Winget, AUR, or Docker, making it accessible across different environments.
Use Cases:
Visualize ownership and lifetimes in Rust for debugging and optimization
RustOwl visualizes ownership movement and lifetimes of variables. When you save Rust source code, it is analyzed, and the ownership and lifetimes of variables are visualized when you hover over a variable or function call.
RustOwl visualizes those by using underlines:
Detailed usage is described here.
Currently, we offer VSCode extension, Neovim plugin and Emacs package. For these editors, move the text cursor over the variable or function call you want to inspect and wait for 2 seconds to visualize the information. We implemented LSP server with an extended protocol. So, RustOwl can be used easily from other editor.
If you're looking for support, please consider checking all issues, existing discussions, and starting a discussion (https://github.com/cordx56/rustowl/discussions/new?category=q-a) first!
Also, you can reach out to us on the Discord server provided above.
Here we describe how to start using RustOwl with VS Code.
cargo installedcargo using rustup from this link (https://rustup.rs/).We tested this guide on macOS Sequoia 15.3.2 on arm64 architecture with VS Code 1.99.3 and cargo 1.89.0.
You can install VS Code extension from this link (https://marketplace.visualstudio.com/items?itemName=cordx56.rustowl-vscode). RustOwl will be installed automatically when the extension is activated.
You can install Vscodium extension from this link (https://open-vsx.org/extension/cordx56/rustowl-vscode). RustOwl will be installed automatically when the extension is activated.
After installation, the extension will automatically run RustOwl when you save any Rust program in cargo workspace. The initial analysis may take some time, but from the second run onward, compile caching is used to reduce the analysis time.
We support Neovim and Emacs. You have to install RustOwl before using RustOwl with other editors.
You can also create your own LSP client. If you would like to implement a client, please refer to the The RustOwl LSP specification.
Minimal setup with lazy.nvim (https://github.com/folke/lazy.nvim):
{
'cordx56/rustowl',
version = '*', -- Latest stable version
build = 'cargo install rustowl',
lazy = false, -- This plugin is already lazy
opts = {},
}
For comprehensive configuration options including custom highlight colors, see the Neovim Configuration Guide.
Recommended configuration: Click to expand
{
'cordx56/rustowl',
version = '*', -- Latest stable version
build = 'cargo binstall rustowl',
lazy = false, -- This plugin is already lazy
opts = {
client = {
on_attach = function(_, buffer)
vim.keymap.set('n', 'o', function()
require('rustowl').toggle(buffer)
end, { buffer = buffer, desc = 'Toggle RustOwl' })
end
},
},
}
SwiftUI macOS app that transforms MacBook notch into dynamic music control center with visualizer, calendar, file shelf with AirDrop, and complete HUD replacement.
Cross-platform peer-to-peer screen sharing tool for Mac, Windows, and Linux without accounts or server infrastructure, using direct connections after initial handshake.
Cross-platform Flutter comic reader supporting local and network comics with JavaScript sources, favorites management, downloads, comments, ratings, and headless mode.
Enterprise-grade Go-based AI API transparent proxy with intelligent key rotation, load balancing, distributed cluster support, and management UI for OpenAI, Gemini, and Claude.
Automated WeChat mini-program decompilation tool in Golang for security assessment with automatic decryption, code beautification, project restoration, F12 debugging, and repackaging.
Root-free Android SIM card country code modifier using system APIs and Shizuku to unlock carriers, bypass regional restrictions, and resolve roaming issues without modifying SIM.