Prelude Eglot Booster
Overview
eglot-booster speeds up
Eglot by routing its JSON-RPC traffic through
emacs-lsp-booster --
a small Rust wrapper that pre-parses LSP messages before handing
them to Emacs. On verbose servers like rust-analyzer, gopls, or
tsserver, and on large projects, the difference is dramatic --
no more multi-second freezes during completion or diagnostics.
This module is opt-in and requires installing a separate
binary (emacs-lsp-booster). The Emacs side gracefully no-ops if
the binary is missing, so Eglot keeps working as before.
Note
This module assumes you're using Eglot (Prelude's default LSP
client). If you've switched prelude-lsp-client to lsp-mode,
use the equivalent lsp-mode performance
flags
instead.
Setup
1. Install the booster binary
Download a prebuilt release for your platform:
https://github.com/blahgeek/emacs-lsp-booster/releases
Place the emacs-lsp-booster binary somewhere on your PATH (e.g.
/usr/local/bin/ or ~/.local/bin/).
Or build from source:
cargo install emacs-lsp-booster
2. Enable the module
Uncomment the prelude-eglot-booster line in your
~/.emacs.d/personal/prelude-modules.el and restart Emacs. On first
load the module will fetch the eglot-booster Emacs package via
package-vc-install.
3. Verify
Open a file with an active Eglot connection and run
M-x eglot-events-buffer. The first lines should mention
emacs_lsp_booster::app -- that confirms the booster is in the
loop.
Customization
eglot-booster-no-remote-boost-- set totto skip boosting servers running over TRAMP. Defaults tonil.eglot-booster-io-only-- set totto keep Emacs 30+'s native JSON parser (the booster only handles I/O, not bytecode). Useful if you want to compare.
Limitations
The booster only wraps LSP servers that communicate over standard input/output. Servers using TCP sockets are not boosted.