Details
The rust-analyzer language server.
Extension package: 0.2.4. Upstream program: 2026-10-19.
Serves
- rust-analyzer:
rust
License: MIT OR Apache-2.0. Platform: every supported platform.
The extension's Rust WASM owns the language client, protocol, document synchronization and server lifecycle. Loog supplies general process, document, provider and UI APIs. The language client stays inside this plugin; Loog supplies the general WIT contract. Opening a Rust document activates the extension; execution uses existing project trust. The extension uses Loog 0.1.10's general UI tree API to place its colored status block before the cursor-position component.
Client sources are in the repository's private language-clients/rust/;
this package owns its Rust manifest and lock file under rust/. Every package bundles its own independent
client instance. Set LOOG_SOURCE to the matching Loog checkout, run npm ci,
then node build.mjs [platform…]. The component has a 16 MiB build limit.
The declared configuration and initialization settings accept JSON text.
PROVENANCE.md records where the files came from and licenses/ carries their licenses.
Client builds require Rust 1.98.0 and the wasm32-unknown-unknown target.
The installed component contains no JavaScript engine. Without compatible signed AOT, Wasmtime compiles the component on first load
and caches native code locally. The external rust-analyzer
server is unchanged.
Official publication adds authenticated, platform-specific AOT compiled with Wasmtime 50.0.1. An AOT-capable Loog host loads matching signed code without local compilation. Older hosts and incompatible/missing AOT use the retained WASM. The regular build archive is unsigned input to the trusted publication stage.
Contributions
| Server | Languages |
|---|---|
| Rust Analyzer | rust |
Changelog
0.1.2
- Tell Loog what the server found in files that are not open, so those findings show in the problems panel and status bar.
0.1.1
- Report how the service is doing to Loog (
loog:service/status) instead of drawing a status item; Loog shows it and lists the service in its language services panel. - Name the service in
contributes.language_service.name.
0.2.4
- Add release-side authenticated AOT for supported platforms, eliminating local compilation on matching AOT-capable Loog hosts.
- Retain portable WASM for older hosts and incompatible runtime profiles.
0.2.3
- Replace the TypeScript client and embedded JavaScript engine with a Rust WebAssembly component.
- Preserve language providers, settings, synchronization, file watches, multi-root sessions, recovery and passive status UI.
- Retain the pinned language server payload and runtime dependencies.
0.2.2
- Show a passive, content-sized status block using the plugin name and ready, busy, stopped or error states.
- Place the server status before the cursor-position component using the general UI tree API.
- Upgrade: Use Loog 0.1.10 or newer for relative UI placement.
0.2.1
- Fix workspace loading, diagnostics, completion and hover for Windows extended-length and UNC paths.
- Keep server-reported workspace errors visible in the status bar after initialization and progress updates.
0.2.0
- Bundle an extension-owned language client with typed providers and status bar UI.
- Use general Loog process, document and workspace APIs instead of a host server declaration.
0.1.3
- Changed the extension category from Languages to Language Services.
0.1.2
- The manifest names what the extension is for:
contributes.language_service.serversreplacescontributes.language_servers. The server is unchanged; this needs a Loog that reads the new name.
0.1.1
- The extension builds itself; nothing in what it contains changed.
0.1.0
- Repackaged from the pinned upstream release listed in PROVENANCE.md.