rustlens 0.2.1

Blazing-fast Rust Code Inspector for the Terminal
Documentation

๐Ÿ” Rustlens

A blazing-fast Rust code inspector for the terminal

CI License: MIT Crates.io Rust


Rustlens is a terminal-based application for exploring Rust codebases. It parses your Rust source files and provides an interactive interface to browse functions, structs, enums, traits, and more โ€” all without leaving your terminal.

Built with Ratatui for a smooth, responsive TUI experience.

Built With Ratatui

Rustlens Demo GIF

โœจ Features

  • ๐Ÿ“ฆ Code Analysis โ€” Parses Rust source files using syn:

    • Functions (parameters, return types, async/const/unsafe)
    • Structs (fields, derives, generics)
    • Enums (variants with all field types)
    • Traits (methods, associated types, supertraits)
    • Impl blocks (inherent and trait implementations)
    • Modules, Type aliases, Constants, Statics
  • ๐Ÿ” Smart Search โ€” Fuzzy matching with real-time filtering

  • ๐Ÿ“‹ Dependency Analysis โ€” Visualize Cargo.toml dependencies

  • ๐ŸŽจ Multiple Themes โ€” Default Dark, Nord, Catppuccin Mocha, Dracula

  • โšก Smooth Animations โ€” Selection highlights, tab transitions

  • โŒจ๏ธ Vim-style Navigation โ€” j/k for movement, / for search

Rustlens Crates Tab Demo

๐Ÿ“ฆ Installation

From crates.io (recommended)

With Rust and Cargo installed:

cargo install rustlens

From source

git clone https://github.com/yashksaini-coder/vizier.git
cd vizier
cargo install --path .
# or: make install

Pre-built binaries

See Releases for Linux (x86_64), macOS (x86_64, Apple Silicon), and Windows (x86_64) binaries.

๐Ÿš€ Usage

Rustlens Copilot Chat Demo

# Cd into the project directory
cd path/to/rust-project
# Analyze current directory (must be a Cargo project root or folder with .rs files)
rustlens

โŒจ๏ธ Keyboard Shortcuts

Key Action
Focus & panels
Tab / Shift+Tab Next / previous panel (search โ†’ list โ†’ inspector)
/ Focus search
Esc Clear search, back to list, or close popup
List & inspector
โ†‘ / โ†“ or j / k Move selection / scroll inspector
Enter / โ†’ / l Open item / focus inspector
โ† / h Back to list (e.g. exit crate view)
Home First item
G / End Last item
PgUp / PgDn Page up / down
Tabs
1 2 3 4 Types ยท Functions ยท Modules ยท Crates
Crates tab only
o Open docs.rs in browser
c Open crates.io in browser
Other
C Open Copilot chat (ask about current item)
t Cycle theme
S Settings overlay
? Toggle help
q / Esc Quit
Links
g Open GitHub repo in browser
s Open Sponsor page in browser

๐Ÿ› ๏ธ Development

# See all commands
make

# Install development tools
make dev-setup

# Full check (format, lint, typecheck)
make check

# Run linter
make lint

# Run tests
make test

# Build release
make release

๐Ÿ“ค Releasing (maintainers)

  • Publish to crates.io (after cargo login): make publish-dry-run then make publish. The crate is published as rustlens.
  • GitHub Release: Push a version tag (e.g. v0.1.0). The release workflow builds binaries for Linux, macOS (Intel + Apple Silicon), and Windows and creates a release. Optionally set CARGO_REGISTRY_TOKEN in repo secrets to auto-publish to crates.io on tag push.

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes using Conventional Commits
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

Commit Convention

We use Conventional Commits. Examples:

  • feat: add new search feature
  • fix: correct parsing error
  • docs: update README
  • refactor!: change API structure (breaking change)

Star History

Star History Chart

๐Ÿ“„ License

This project is licensed under the MIT License.