📅 You're Invited: Meet the Socket team at RSAC (April 28 – May 1).RSVP
Socket
Sign inDemoInstall
Socket

Security News

Biome Announces v2.0 Beta with Plugin System and Type Information Support

Biome's v2.0 beta introduces custom plugins, domain-specific linting, and type-aware rules while laying groundwork for HTML support and embedded language features in 2025.

Biome Announces v2.0 Beta with Plugin System and Type Information Support

Sarah Gooding

March 25, 2025

The Biome team has announced the beta release of version 2.0 of their JavaScript/TypeScript toolchain, introducing several significant features that users have been requesting. This release comes amid the broader trend of JavaScript tooling being rewritten in Rust for performance gains, with Biome being one of the more mature projects in this space.

What's New in Biome v2.0 Beta#

Biome has established itself as a viable alternative to traditional JavaScript tooling combinations like ESLint and Prettier, offering a unified, Rust-powered toolchain with impressive performance. The v2.0 beta introduces several notable features:

  • Plugins System: For the first time, Biome will allow developers to write custom lint rules using GritQL, addressing one of the most requested features from the community.
  • Domains: A new way to organize lint rules by technology, framework, or domain. Biome will automatically inspect your package.json to determine which domains should be enabled by default.
  • Enhanced Import Organization: The v2.0 beta completely overhauls the import organizer, lifting previous limitations and adding support for organizing export statements, handling "detached" comments, and sorting import attributes.
  • Multi-file Analysis: This enables lint rules to query information from other files, making possible more powerful validations across your codebase.
  • Type Information: Biome v2.0 introduces the first version of rules that rely on type information, starting with the highly requested noFloatingPromises rule.

Rust Adoption in JS Toolchain Development#

Biome's v2.0 beta represents another milestone in what some call the "Rust revolution" in JavaScript tooling. This growing trend includes projects like:

These tools share a common promise: delivering the same functionality as their JavaScript counterparts but with dramatically better performance through Rust's memory efficiency, parallelism capabilities, compile-time safety checks, and performance optimization options.

Type-Aware Linting Challenges#

Another important consideration is what Joshua Goldberg calls "the typed linting gap." In his analysis "Rust-Based JavaScript Linters: Fast, But No Typed Linting Right Now," Goldberg highlights that no Rust-based linter has yet integrated with TypeScript's type-checking APIs.

"I’m not saying you shouldn’t use a Rust-based linter: if you don’t want any of the type-checked lint rules, then sure, switching over is great," Goldberg said. "But I strongly recommend you look through at least the recommended type-checked rules in typescript-eslint to understand what you’re missing first.

"You could even run both tools in tandem: a native-speed linter first for quick feedback, then typescript-eslint for just the rules with type information."

While tools like Biome and Oxlint offer impressive speed, they currently lack the type-checked lint rules that many teams rely on from ESLint and typescript-eslint. Biome v2.0 begins to address this with its first type-aware rule, but the ecosystem still has a way to go before achieving feature parity.

Biome project lead Arend van Beelen Jr. commented on GitHub about the team's approach to type checking, particularly in light of Microsoft's announcement of a native TypeScript compiler. He explained that Biome is pursuing its own type inference solution to ensure a "batteries-included" experience that works without TypeScript installed, avoid inefficiencies from external services duplicating parsing work, and prevent compatibility issues between different ASTs.

While acknowledging that the native TypeScript compiler will address performance concerns, he emphasized that Biome's approach could potentially be faster and more widely applicable. Van Beelen also noted that the team remains open to integrating with TypeScript's API in the future, suggesting it might appear on next year's roadmap as the native compiler develops.

A notable development is that as of January 2025, Biome is offering Enterprise Support, which could allow some contributors to dedicate more time to the project. This move signals Biome's growing maturity and commitment to long-term sustainability.

While the current focus is on the v2.0 beta release, the Biome team has also outlined their roadmap for 2025. It includes plans for HTML support, improved handling of embedded languages (like CSS or GraphQL in JavaScript template literals), and further expansion of the plugin system.

The team acknowledges that being a community-driven project means they cannot guarantee delivery of all planned features, but they've established clear priorities. After the v2.0 release, they intend to collect feedback on the new plugin system to determine which types of plugins to develop next.

Subscribe to our newsletter

Get notified when we publish new security blog posts!

Try it now

Ready to block malicious and vulnerable dependencies?

Install GitHub AppBook a demo

Related posts

Back to all posts