Sign in

Cam McHenry

@camchenry.com
565 followers 317 following 145 posts

dad | software engineer @github.com | core team member of oxc.rs | ✝️ camchenry.com

PostsRepliesMedia
Cam McHenry @camchenry.com · 16/05/2026
we recently added rule timing support to oxlint to help triage performance issues. try running with `--debug=timings` to see the slowest built-in rules. support for type-aware/JS plugins will be supported in the future too.
results of running "pnpx oxlint --debug=timings --silent" on the actualbudget/actual repository. It says "Found 22 warnings and 0 errors. Finished in 7.5s on 1805 files using 8 threads." and then includes a rule timings table that lists the slowest rules from slowest to fastest. Each row includes the rule name, time it took to run in milliseconds, relative time, number of times called, and where the rule comes from (source). For example, the eslint/no-unused-vars rule took 297ms (26.8% of total), and was called 1,805 times and is a native rule.
1441
Cam McHenry @camchenry.com · 06/05/2026
We are working on bulk suppressions support in oxlint! Next release will have CLI support and we are working on LSP support now.
181
Cam McHenry @camchenry.com · 08/11/2025
Finally had time to put more effort into implementing oxlint<->tsgolint configuration for rules. Very soon, you'll be able to configure type-aware rules like any other rules. Should be as easy as just upgrading to the latest versions once it is available.
1330
Cam McHenry @camchenry.com · 22/10/2025
On the Kibana repository, oxlint 1.24 is 11% faster than v1.23, and up to 26% faster than v1.22 and below!
Hyperfine benchmark showing that oxlint 1.24 is 1.11 times faster than v1.23, 1.26 times faster than v1.22, and 1.27 times faster than v1.21.
230
Cam McHenry @camchenry.com · 22/10/2025
On my laptop, oxlint 1.24 is 3% faster than 1.23 on the `vscode` repository, with even larger improvements for very large codebases. That means if you haven't updated to one of the latest versions in a few weeks, your linting step could be >10% slower than it should be!
A hyperfine benchmark showed that oxlint 1.24 is 1.03 times faster than v1.23, 1.11 times faster than v1.21, and 1.12 times faster than v1.22.
151
Cam McHenry @camchenry.com · 13/10/2025
Oxlint 1.23.0 just got released, which includes the latest in some of the performance optimization work I've been doing. Running on the vscode repository on my M1 laptop, 1.23.0 is ~7-9% faster than previous versions of oxlint with no changes other than just bumping the dependency.
A benchmark of oxlint runs against the vscode repository. The final summary shows 'pnpx oxlint@1.23 --silent' ran 7% faster than 1.21, 8% faster than 1.22, 9% faster than 1.20, and 9% faster than 1.19. The average time for 1.23 was 844.8ms.
2381
Cam McHenry @camchenry.com · 18/08/2025
Trying some new oxlint optimizations. This PR has gone over several iterations in the last few months and the core idea is simple: don't run rules for files if they don't apply (using an AST node bitset lookup). The result: linting is around 15% faster in practice.
Oxlint linter CodSpeed benchmark showing 65-84% performance improvementsA hyperfine CLI benchmark showing that linting the vscode repository is around 17% faster.A hyperfine CLI benchmark showing that linting the kibana repository is around 17% faster.
5393
Cam McHenry @camchenry.com · 07/04/2025
This allows these errors to be displayed similarly to how they are rendered in the oxlint CLI, which is very helpful for more in-depth diagnostics!
A screenshot of error output in the oxlint CLI. The error message reads: "Optional chain expressions can return undefined by design: using a non-null assertion is unsafe and wrong" and points to the code: "foo?.bar!". The question mark has a label of "optional chain used" and the exclamation mark has a label of "non-null assertion made after optional chain". The help text says to remove the non-null assertion.
120
Cam McHenry @camchenry.com · 07/04/2025
Also added within the last few weeks, lint errors which point to multiple areas in the code are now labeled and shown correctly in VS Code. Previously, this would cause these errors to not be shown sometimes.
A screenshot of a JavaScript file in the VS Code UI. The file contains the expression "foo?.bar!", which has an error associated with it  on the question mark, which says "Optional chain expressions can return undefined by design". The user is hovering over the exclamation mark, which has a popup visible on it which says "non-null assertion made after optional chain"
120
Cam McHenry @camchenry.com · 07/04/2025
In the latest version of the `oxc` VS Code extension (0.16.5), lint fixes now use the provided fix message whenever possible, making it much more clear what the fix will do. Previously, this just appeared as "Fix XYZ problem".
Screenshot of a VSCode editor, with the "quick fix" menu open for a debugger statement in a JavaScript file. The error message says "debugger statement is not allowed" and the top code action says "Remove the debugger statement"
1343
Cam McHenry @camchenry.com · 09/02/2025
you love to see it:
A diff view of a package.json dependencies list, on the left-hand side is a list of the 6 rollup plugins removed plus the rollup dependency. The plugins removed include the commonjs plugin, json plugin, and node-resolve plugin. Now all of that is replaced with just the "rolldown" plugin
090
Cam McHenry @camchenry.com · 12/11/2024
Society if engineers were banned from playing Factorio:
A utopian future cityscape
150
Cam McHenry @camchenry.com · 09/11/2024
pov: you are a dog treat being eaten #corgisky
point of view shot from the end of a corgi nose eating the camera
030
Cam McHenry @camchenry.com · 05/11/2024
and in this new country, we shall have 13 different types for text and text shall be known as strings and we shall call lists of things "vectors." what's the difference? nobody knows.
SNL sketch of george washington with nate bergatze as george washington in center, with keenan thompson and james austin johnson as soldiers on right and left, respectively
141
Cam McHenry @camchenry.com · 31/10/2024
obligatory puppy coworker pics:
020