An enhanced Rust development environment for Emacs with LSP integration, cargo commands, and org-babel support.
Rustic is an Emacs package that extends rust-mode to provide a comprehensive Rust development environment. It integrates advanced tooling like LSP, cargo commands, and rustfmt with asynchronous operations and improved error handling. The project solves the problem of fragmented Rust tooling in Emacs by offering a cohesive, feature-rich experience.
Emacs users who develop in Rust and want a unified environment with deep integration of tools like rust-analyzer, cargo, and rustfmt. It is particularly suited for those who value asynchronous operations, remote development over TRAMP, and Org-babel support for literate programming.
Developers choose Rustic over basic rust-mode for its seamless, async-first integration of essential Rust tools, reducing context switching. Its unique selling point is the combination of LSP auto-configuration, enhanced compilation with multiline error parsing, and specialized features like Org-babel support with crate management.
Rust development environment for Emacs
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Configures eglot or lsp-mode automatically for rust-analyzer, providing code intelligence and refactoring with minimal manual intervention, as detailed in the LSP section.
Offers a popup interface and dedicated functions for cargo build, test, fmt, and clippy, streamlining common Rust workflows directly in Emacs.
Enables asynchronous execution of Rust code blocks in Org mode with crate dependency management and toolchain specification, enhancing literate programming.
Features multiline error parsing and ANSI sequence coloring via xterm-color, improving error navigation and readability in compilation outputs.
The main repository is no longer maintained as of May 2024, with development moved to a fork, potentially affecting bug fixes and future updates.
Known issues with severe lag when editing larger files due to interactions between rust-syntax-propertize and adaptive-wrap-prefix-mode, as admitted in the README.
Requires managing shell environment variables and additional packages like exec-path-from-shell for tools like cargo and rust-analyzer to work correctly, adding setup overhead.
Lacks automatic server installation for eglot compared to lsp-mode, forcing manual rust-analyzer setup as noted in the README's LSP section.