HeadlinesBriefing favicon HeadlinesBriefing.com

Rust Glancer: Легкий LSP для Rust

Hacker News •
×

Хочу представить проект, над которым я работал последние 4 месяца: альтернативная реализация LSP для Rust, созданная с упором на низкое использование памяти. Он ориентирован на объем менее 100 МБ для средних проектов и позволяет мгновенно индексировать код после перезапуска. Я тестировал его на своем старом MacBook Pro M1 2020 года с 8 ГБ ОЗУ, и он показал довольно хорошие результаты.

Эти особенности делают [PERSON_NAME] подходящим для старых компьютеров. Это еще не полноценный LSP, но в нем уже есть полный конвейер индексации с выводом типов и решателем трейтов. Поддерживается большая часть стандартного синтаксиса Rust, а стандартные действия LSP, такие как переход к определению, всплывающие подсказки и автодополнение, работают как ожидается. Вы можете попробовать его, установив расширение для VS Code.

В отличие от rust-analyzer, который использует salsa и [PERSON_NAME] для приоритета скорости, данная архитектура по умолчанию привязывает данные к памяти и вызывает сильную фрагментацию ОЗУ. Основная идея заключалась в отказе от инкрементального отслеживания в памяти. Сохраняя замороженные результаты анализа непосредственно в файловую систему, Rust Glancer выгружает данные до их востребованности, повторно использует индексацию после перезапусков и радикально снижает потребление ресурсов.