rls-2.0 Working Group

rls-2.0 Working Group

working group status: retired

Scope and purpose

Discover ideal architecture for IDE-compiler by starting a “from scratch” implementation. Especially, how to handle the two hardest things:

  • name resolution/macro expansion
  • trait resolution

Quantify how hard would be to port existing rustc to the IDE architecture.

Secondary Goals

  • provide better RLS experience by making a “better racer”
  • facilitate rustc librarification by discovering and prototyping separable libraries
  • facilitate specification of the language, by producing “more declarative” implementation


  • a language server which provides compiler-based code completion for a subset of the Rust language.
  • “design knowledge”: which approaches do and do not work in IDE contexts.
  • (optional) improvements to existing tooling, like replacing racer in RLS with something more powerful, or making rustfmt capable of dealing with incomplete code.

Current status

An initial language-server is implemented in the rust-analyzer.

How to participate

Chat forum

On the rust-lang Zulip, in the #t-compiler/rust-analyzer stream.


We don’t have a regular meeting schedule yet, check Zulip to learn about the next one. However, we maintain work list – a paper document that shows what everyone is working on right now. If you want to (this is not mandatory), add yourself to the list!


Currently the bulk of work is happening in the rust-analyzer repository. It has E-mentor issues and a guide.

Getting up to speed

There’s some documentation in rust-analyzer repository which should be useful. There’s a YouTube playlist with videos which cover various subsystems of the analyzer.