Skip to content
Open
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
4fd6305
feat(plugin): add WASM Component Model plugin system
Feb 25, 2026
1b128aa
fix(plugin): forward options to WASM plugins loaded via manifest
Feb 28, 2026
f7efad5
chore: remove unused PluginVisitor imports
Mar 1, 2026
7440359
fix: restore missing imports after sed cleanup
Mar 1, 2026
ae66a9d
feat(plugin): improve diagnostic display with plugin name prefix
Hideart Mar 7, 2026
691dd5d
feat(plugin): add source triggers pre-filter and batch host calls
Hideart Mar 7, 2026
be94b5c
perf(plugin): reuse WASM instance across check calls within a file
Hideart Mar 7, 2026
b94fd9f
perf(plugin): use thread-local WASM sessions to eliminate lock conten…
Hideart Mar 7, 2026
fd65602
perf(plugin): add AOT compilation cache and parallel plugin loading
Hideart Mar 7, 2026
4e417e8
chore(plugin): fix docs, add AOT cache tests, and run codegen
Hideart Mar 8, 2026
7fcb9f9
fix(plugin): resolve cherry-pick conflicts in html.rs and Cargo.toml …
Hideart Mar 8, 2026
8c222ee
fix(plugin): update test files to match AnalyzerWasmPlugin::load sign…
Hideart Mar 8, 2026
cb35b93
chore: add changeset for WASM plugin system
Hideart Mar 8, 2026
43e3813
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 8, 2026
519c32d
fix(plugin): address all review comments on PR #9399
Hideart Mar 9, 2026
37d817b
fix: correct sortBareImports changeset wording (true, not false)
Hideart Mar 9, 2026
db4808f
chore: remove sortBareImports changeset (landed upstream in #9384)
Hideart Mar 9, 2026
3d2ac29
fix(plugin): address second round of review comments
Hideart Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 0 additions & 31 deletions .changeset/flat-beers-battle.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/wasm-plugin-system.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor
---

Added an opt-in WASM Component Model plugin system behind the `wasm_plugin` feature flag. Users can write custom lint rules in Rust (or any language targeting `wasm32-wasip2`), compile them to `.wasm` modules, and load them at runtime via `wasmtime`. Plugins support full AST traversal, semantic model access, type inference, configurable options, and suppression comments. This complements the existing GritQL plugin system with a high-performance alternative for complex rules that need stateful analysis.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,6 @@ dhat-heap.json
!/crates/biome_json_formatter/tests/specs/prettier/**/*
!/crates/biome_css_formatter/tests/specs/prettier/**/*
!/crates/biome_graphql_formatter/tests/specs/prettier/**/*

# Compiled WASM plugin test fixtures (built by biome_plugin_loader/build.rs)
crates/biome_plugin_loader/tests/fixtures/*.wasm
Loading