Pular para o conteúdo

Rust Glancer: LSP alternativo ao rust-analyzer que mira menos de 100 MB de RAM

O Rust Glancer é uma implementação alternativa de LSP para Rust com foco em baixo uso de memória. A versão anterior deste texto afirmava “100 vezes menos RAM”. Esse número não aparece na fonte, e vale explicar o que ela realmente diz.

O que o autor afirma sobre memória

A meta declarada é ficar abaixo de 100 MB em projetos razoáveis. O autor relata que, na máquina dele, com dois IDEs abertos, o rust-analyzer chegava a consumir 16 GB, e que no demo em um MacBook Pro M1 de 2020 com 8 GB a RAM do Rust Glancer permaneceu abaixo de 100 MB. São observações de um setup específico, não um benchmark comparativo controlado.

O que a tabela do post mostra

A única comparação numérica é de tempo de indexação, não de memória. No MacBook Pro M4 Max (36 GB), o Rust Glancer leva 5 s na indexação base e 8 s na completa, contra 6 s e 13 s do rust-analyzer. No M1 de 8 GB, 6 s e 9 s contra 7 s e 14 s.

Como ele economiza memória

Evita o salsa, o banco de dados incremental do rust-analyzer, que consome bastante memória. Troca a rowan por uma representação mais eficiente, com menos fragmentação. Salva uma análise congelada do workspace no disco e carrega só o que precisa, e durante a digitação faz uma análise rasa, reaproveitando o índice completo anterior.

Limitações

Novas structs, imports e traits só são indexados quando o documento é salvo. Build scripts e proc macros não são invocados. O autor admite que falta muita funcionalidade e que, por design, a ferramenta é mais lenta em parte do uso. O projeto tem 4 meses de desenvolvimento, já oferece ir à definição, hover, inlay hints e completions, e o autor diz usá-lo no dia a dia há cerca de um mês e meio.