This week in Oxc
This thread serves as our weekly update channel for sharing project developments with the community.
Click the subscribe button on the right for updates.
For inquiries, please find me on Discord, x, bluesky, or use the Void Zero reach out form.
2025 Mar 31 Week 14
Oxlint v0.16.5
@camchenry reduced the binary size from 6.32 MB to 5.8 MB by removing documentation texts.
Oxlint plugin written in JS
@Boshen and @overlookmotel are researching and gathering the requirements for custom JavaScript custom plugins, tracking in https://github.com/oxc-project/oxc/issues/9905
Formatter
@Boshen and @leaysgur started a new oxc_formatter crate, where the foundation is based on Biome's formatter. @Boshen is filling in formatting implementations.
ESTree compatibility
@overlookmotel, @leaysgur and @therewillbecode are aligning our Typescript ESTree to typescript-eslint's implementation. Currently passing 75% test cases.
Note our JS ESTree is 100% compatible with acorn's output.
Better and smaller Allocator Vec implementation
@Dunqing is working on a side project to change oxc_allocator's vec implementation, the current version is an outdated std::vec version exposed by bumpalo. The next step is to reduce AST memory consumption and improve performance by replacing u64 fields with u32.
Minifier
Progress has stopped since the alpha version.
2025 Apr 7 Week 15
Oxlint plugin written in JS
We started a discussion to gather requirements: Oxlint plugin written in JS.
@boshen and @overlookmotel will decide on the prototype and roadmap this week.
Formatter
@boshen continues to work on the formatter, passing js 61/645 (9.46%) and ts 20/573 (3.49%) in the prettier conformance suite.
Transformer
@dunqing improved Oxc's TypeScript semantic data to resolve several outstanding transform issues. PR stack: https://github.com/oxc-project/oxc/pull/10343
Language Server
@Sysix is refactoring the language server's code to enable import plugin: https://github.com/oxc-project/oxc/pull/10268
Switched the unmaintained tower-lsp crate to a a community fork tower-lsp-server: https://github.com/oxc-project/oxc/pull/10298
2025 Apr 14 Week 16
Oxlint plugin written in JS
@Boshen and @overlookmotel started working on the initial prototype, learning and researching napi and node.js worker threads.
Formatter
@Boshen continues to work on the formatter, passing js js 61/645 (9.46%) -> 189/699 (27.04%) and ts 20/573 (3.49%) -> 110/573 (19.20%) in the prettier conformance suite.
ESTree compatibility
TypeScript estree conformance increased from 75% to 9097/10725 (84.82%). Thank you @leaysgur for reporting where the incompatibilities are.
Transformer
@Dunqing continues to fix issues reported from Rolldown.
2025 Apr 21 Week 17
Oxlint plugin written in JS
- Started a small prototype that interacts with napi: https://github.com/oxc-project/oxc/tree/napi
- Concluded that we need to use ast tools to generate a more efficient ast walker, to replace https://github.com/oxc-project/oxc-walker
ESTree compatibility
TypeScript estree conformance increased from 9097/10725 (84.82%) to 6458/6493 (99.46%). All remaining issues are tracked in https://github.com/oxc-project/oxc/issues/9705#issuecomment-2829457031
Transformer
Added alignment to TypeScript's useDefineForClassFields: false. Need to set both set_public_class_fields and remove_class_fields_without_initializer to true.
See issue and PR stack
- https://github.com/oxc-project/oxc/issues/9192
- https://github.com/oxc-project/oxc/pull/10576
Formatter
No progress.
Parser
~5% performance improvement
- https://github.com/oxc-project/oxc/pull/10588
2025 Apr 28 Week 18
Oxlint plugin written in JS
No progress.
Formatter
@Boshen continues to work on the formatter, passing 189/699 (27.04%) -> 236/699 (33.76%) and ts 110/573 (19.20%) -> 143/573 (24.96%) in the prettier conformance suite.
ESTree compatibility
TypeScript estree conformance increased from 6458/6493 (99.46%) to 6478/6481 (99.95%).
Achieving ESTree compatibility is leading to a prettier plugin with oxc parser, which is almost complete and waiting to be released.
Transformer
- https://github.com/oxc-project/oxc/pull/10759 (22% performance improvement)
2025 May 5 Week 19
Parser
3% performance improvement
- https://github.com/oxc-project/oxc/pull/10933
Oxlint 1.0
We are working towards oxlint v1.0. @camc314 and @Sysix are fixing issues for stability.
Oxlint plugin written in JS
No progress.
Formatter
No progress. @Dunqing will pick up the formatter starting from this week.
ESTree compatibility
Most works are done. We now have a working prettier plugin: https://github.com/ArnaudBarre/prettier-oxc-parser waiting for 1.0.
2025 May 12 Week 20
Parser
2% performance improvement
- https://github.com/oxc-project/oxc/pull/10884
Oxlint 1.0
@camc314 released oxlint v0.16.11, and is continuing to stabilize the linter for 1.0.
Formatter
@Dunqing started working on the formatter. js 245/699 (35.05%)-> 257/699 (36.77%) ts 157/573 (24.96%) -> 180/573 (31.41%)
ESTree compatibility
All work are done, prettier is integrating oxc parser, with a few blocking issues. PR: https://github.com/prettier/prettier/pull/17472
Resolver
knip adopted oxc-resolver, increased its weekly download count to over 1.3 million. PR: https://github.com/webpro-nl/knip/pull/1081
2025 May 19 Week 21
Oxlint 1.0
Released oxlint v0.16.12, we continue to stabilize the linter for 1.0.
Parser
We intend to improve the parser by:
- https://github.com/oxc-project/oxc/issues/11145
- https://github.com/oxc-project/oxc/issues/11194
Formatter
@Dunqing finished printing BinaryExpression and LogicalExpression, js 257/699 (36.77%) -> 281/699 (40.20%), ts 180/573 (31.41%) -> 181/573 (31.59%).
2025 May 26 Week 22
Oxlint v1.0
Final v0.17.0 release. Now in feature freeze phase until final v1.0 release.
Parser
- https://github.com/oxc-project/oxc/issues/11334 Found a lot of performance improvements
Formatter
@Dunqing continues to work on the formatter.
estree conformance
@overlookmotel completed conformance testing and fixed problems that would block prettier adopting oxc.
Week 23
Oxlint v1.0
Oxlint 1.0 today.
Oxlint plugin written in JS
We have a consensus on what to build, will release roadmap when it is ready.
Formatter
@Dunqing is rearchitecting the formatter
- https://github.com/oxc-project/oxc/pull/11511
codegen
We are seeking an solution for estree codegen
- https://github.com/oxc-project/oxc/issues/11495
Week 24
Oxlint
Announced Oxlint 1.0 https://voidzero.dev/posts/announcing-oxlint-1-stable
Formatter
@Dunqing is working on supporting comments https://github.com/oxc-project/oxc/pull/11716
Oxlint JS Custom plugin
@camc314 started working on the prototype. First step is to pass a memory buffer created in js to Rust, for raw transfer.
Parser
@leaysgur is looking for ways to improve our ts parser error story
- https://github.com/oxc-project/oxc/issues/11582