Saturday, July 27, 2024
Google search engine
HomeUncategorizedOxlint – written in Rust – 50-100 Times Faster than ESLint

Oxlint – written in Rust – 50-100 Times Faster than ESLint

We’re thrilled to announce that oxlint is now generally available! This milestone signifies our team’s ability to promptly address and triage issues.

Oxlint is a JavaScript linter designed to catch erroneous or useless code without requiring any configurations by default.

How to Use

At this stage, oxlint is not intended to fully replace ESLint; it serves as an enhancement when ESLint’s slowness becomes a bottleneck in your workflow.

For faster feedback loops, we recommend running oxlint before ESLint in your lint-staged or CI setup, considering it only takes a few seconds to run on large codebases.

To test oxlint in your JavaScript / TypeScript codebase, simply execute the following command at the root directory of your repository:

sh

$ npx oxlint@latest
$ npx oxlint@latest

sh

$ pnpm dlx oxlint@latest
$ pnpm dlx oxlint@latest

sh

$ yarn dlx oxlint@latest
$ yarn dlx oxlint@latest

sh

$ bunx oxlint@latest
$ bunx oxlint@latest

sh

$ deno run oxlint@latest
$ deno run oxlint@latest

Alternatively, refer to the installation guide for detailed instructions.

Design

50-100 Times Faster than ESLint

In real-world scenarios, Shopify reported that their 75 CI minutes ESLint run is now only 10 seconds.

From Jason Miller, Shopify DX and creator of Preact:

oxlint has been a massive win for us at Shopify. Our previous linting setup took 75 minutes to run, so we were fanning it out across 40+ workers in CI.

By comparison, oxlint takes around 10 seconds to lint the same codebase on a single worker, and the output is easier to interpret.

We even caught a few bugs that were hidden or skipped by our old setup when we migrated!

The majority of the performance gains stem from Oxlint being purposefully designed for performance, utilizing Rust and parallel processing as key factors.

Lint for Correctness

Oxlint defaults to identifying erroneous, redundant, or confusing code — prioritizing correctness over unnecessary nitpicking rules (categorized as perf, suspicious, pedantic, or style), which are disabled by default.

Ease of Use

Setting up new JavaScript / TypeScript codebases is becoming increasingly complex. There’s a high likelihood of encountering compatibility issues among your tools, potentially resulting in hours of wasted time.

That’s why we designed oxlint to be zero-config out of the box; even Node.js is not a requirement. Most adjustments can be made through the command-line, and reading from ESLint configuration file is currently work in progress.

Enhanced Diagnostics

Understanding linter messages can be challenging. Oxlint aims to simplify this by pinpointing root causes and providing helpful messages — eliminating the need for lengthy rule documentation reading, saving valuable time.

Running oxlint -D perf in the vscode repository:

Consolidated Rules

Oxlint does not provide a plugin system yet, but we are actively consolidating rules from popular plugins like TypeScript, React, Jest, Unicorn, JSX-a11y and Import.

We recognize the importance of plugins in the JavaScript ecosystem and are also investigating a DSL-based plugin system.

However, you might appreciate a standalone linter — no need to manage a list of plugin dependencies, navigate through compatibility issues, or resort to forked plugins due to version constraints.


Happy linting and have a joyful holiday season!

To get started, follow the installation guide, or learn more about the oxc project.

Read More

RELATED ARTICLES

2 COMMENTS

  1. I played on this gambling website and won a significant cash, but eventually, my mom fell sick, and I needed to take out some funds from my account. Unfortunately, I experienced difficulties and could not complete the withdrawal. Tragically, my mother died due to such gambling platform. I request for your support in reporting this website. Please help me in seeking justice, so that others won’t have to face the hardship I am going through today, and stop them from crying tears like mine. 😭😭😭�

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments