NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2584 most downloaded on npm
Oxc Parser Node API
Last release 5 days ago
29 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 54 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
186 releases · first in 2023
b7f13e6 ast: Implement utf8 to utf16 span converter (#8687) (Boshen)
178c232 parser: Parse intrinsic TS keyword (#8627) (Kevin Deng 三咲智子)
intrinsic TS keyword (#8627) (Kevin Deng 三咲智子)true as TSLiteralType (#8626) (Kevin Deng 三咲智子)! (#8662) (Boshen)Atoms (#8641) (overlookmotel)Copy on Atom (#8596) (branchseer)One column per month.
Nothing published for this version
c479a58 napi/parser: Expose dynamic import expressions (#8540) (Boshen)
Span (#8297) (overlookmotel)Nothing published for this version
6c7acac allocator: Implement IntoIterator for &mut Vec (#8389) (overlookmotel)
IntoIterator for &mut Vec (#8389) (overlookmotel)Source is not Clone (#8294) (overlookmotel)const and enum (#8193) (branchseer)SourcePosition (#8293) (overlookmotel)handle_byte a method of Lexer (#8291) (overlookmotel)#[allow] with #[expect] (#8289) (overlookmotel)Token in 32-bit WASM (#8292) (overlookmotel)ad2a620 ast: [BREAKING] Add missing AssignmentTargetProperty::computed (#8097) (Boshen)
AssignmentTargetProperty::computed (#8097) (Boshen)import source from from 'mod' (#8056) (Boshen)Nothing published for this version
81eedb1 parser: 'readonly' type modifier is only permitted on array and tuple literal types. (#7880) (Boshen)
cargo +nightly fmt (#7877) (Boshen)fb325dc ast: [BREAKING] span field must be the first element (#7821) (Boshen)
span field must be the first element (#7821) (Boshen)import source from 'mod' (#7833) (Boshen)Nothing published for this version
72eab6c parser: [BREAKING] Stage 3 import source and import defer (#7706) (Boshen)
72eab6c parser: [BREAKING] Stage 3 import source and import defer (#7706) (Boshen)
ebc80f6 ast: [BREAKING] Change 'raw' from &str to Option<Atom> (#7547) (Song Gao)
import.meta (#7677) (Boshen)ExportEntry::is_type (#7676) (Boshen)for await syntax (#7649) (Boshen)parse_statement match conditions (#7645) (Boshen)ModuleRecord::has_module_syntax for setting sourceType (#7646) (Boshen)c2ced15 parser,linter: [BREAKING] Use a different ModuleRecord for linter (#7554) (Boshen)
c2ced15 parser,linter: [BREAKING] Use a different ModuleRecord for linter (#7554) (Boshen)
8a788b8 parser: [BREAKING] Build ModuleRecord directly in parser (#7546) (Boshen)
b0e1c03 ast: [BREAKING] Add StringLiteral::raw field (#7393) (Boshen)
ImportEntry and ExportEntry (#7583) (Boshen)PropName trait from oxc_ecmascript (#7543) (Boshen)ModuleRecord::not_esm to has_module_syntax (#7579) (Boshen)ModuleRecord::export_default (#7578) (Boshen)ModuleRecord::exported_bindings_duplicated because it is a syntax error (#7577) (Boshen)ModuleRecord::export_default_duplicated because it is a syntax error (#7576) (Boshen)Nothing published for this version
f059b0e ast: [BREAKING] Add missing ChainExpression from TSNonNullExpression (#7377) (Boshen)
f059b0e ast: [BREAKING] Add missing ChainExpression from TSNonNullExpression (#7377) (Boshen)
878189c parser,linter: [BREAKING] Add ParserReturn::is_flow_language; linter ignore flow error (#7373) (Boshen)
44375a5 ast: [BREAKING] Rename TSEnumMemberName enum variants (#7250) (overlookmotel)
x?.f<T>() (#7387) (Boshen)ChainExpression in optional TSInstantiationExpression (#7371) (Boshen)b11ed2c ast: [BREAKING] Remove useless ObjectProperty::init field (#7220) (Boshen)
b11ed2c ast: [BREAKING] Remove useless ObjectProperty::init field (#7220) (Boshen)
0e4adc1 ast: [BREAKING] Remove invalid expressions from TSEnumMemberName (#7219) (Boshen)
d1d1874 ast: [BREAKING] Change comment.span to real position that contain // and /* (#7154) (Boshen)
caaf00e parser: Fix incorrect parsed TSIndexSignature (#7016) (Boshen)
TSIndexSignature (#7016) (Boshen). before [ in parse_member_expression_rest (#6979) (Boshen)oxc_ecmascript crate (#7109) (Boshen)AstBuilder::*_from_* methods (#7068) (overlookmotel)ParserImpl::alloc method (#7063) (overlookmotel)parse_type_member_semicolon (#7018) (Boshen)parse_ts_index_signature_member function (#7017) (Boshen)423d54c rust: Remove the annoying clippy::wildcard_imports (#6860) (Boshen)
clippy::wildcard_imports (#6860) (Boshen)a1ca964 ast, parser: [BREAKING] Remove NumericLiteral::new method (#6787) (overlookmotel)
a1ca964 ast, parser: [BREAKING] Remove NumericLiteral::new method (#6787) (overlookmotel)
aeaa27a ast, parser, transformer, traverse: [BREAKING] Remove BindingIdentifier::new methods (#6786) (overlookmotel)
ecc9151 ast, parser, transformer, traverse: [BREAKING] Remove IdentifierReference::new methods (#6785) (overlookmotel)
8032813 regular_expression: [BREAKING] Migrate to new regexp parser API (#6741) (leaysgur)
5200960 oxc: [BREAKING] Remove passing Trivias around (#6446) (Boshen)
5200960 oxc: [BREAKING] Remove passing Trivias around (#6446) (Boshen)
2808973 ast: [BREAKING] Add Program::comments (#6445) (Boshen)
( as leading comments of next token (#6588) (Dunqing)as and satisfies expression in javascript (#6442) (Boshen)is_typescript (#6443) (Boshen)01b878e parser: [BREAKING] Use BindingIdentifier for namespace declaration names (#6003) (DonIsaac)
01b878e parser: [BREAKING] Use BindingIdentifier for namespace declaration names (#6003) (DonIsaac)
5a73a66 regular_expression: [BREAKING] Simplify public APIs (#6262) (leaysgur)
32d972e parser: [BREAKING] Treat unambiguous files containing TS export assignments as modules (#6253) (overlookmotel)
oxc_ecmascript (#6202) (Boshen)ImportSpecifiers for type imports (#6352) (DonIsaac)= as leading comments of next token (#6355) (Dunqing)const modifiers on class elements (#6353) (DonIsaac)Nothing published for this version
fd6798f parser: Remove unintended pub Kind (#6109) (Boshen)
pub Kind (#6109) (Boshen)Nothing published for this version
0658576 paresr: Do not report missing initializer error in ambient context (#6020) (Boshen)
Nothing published for this version
e8bf30a ast: Add Comment::real_span (#5764) (Boshen)
Comment::real_span (#5764) (Boshen)Comment struct (#5783) (Boshen)UniquePromise code (#5805) (overlookmotel)--ast and --comments to example (Boshen)953fe17 ast: Provide NONE type for AST builder calls (#5737) (overlookmotel)
NONE type for AST builder calls (#5737) (overlookmotel)cow_utils instead (#5664) (dalaoshu)ee4fb42 ast: [BREAKING] Reduce size of WithClause by Boxing it (#5677) (Boshen)
ee4fb42 ast: [BREAKING] Reduce size of WithClause by Boxing it (#5677) (Boshen)
4a8aec1 span: [BREAKING] Change SourceType::js to SourceType::cjs and SourceType::mjs (#5606) (Boshen)
603817b oxc: [BREAKING] Add SourceType::Unambiguous; parse .js as unambiguous (#5557) (Boshen)
cba93f5 ast: [BREAKING] Add ThisExpression variants to JSXElementName and JSXMemberExpressionObject (#5466) (overlookmotel)
ThisExpression variants to JSXElementName and JSXMemberExpressionObject (#5466) (overlookmotel)oxc_regular_expression types to the parser and AST. (#5256) (rzvxa)JSXMemberExpression <Foo.bar-baz /> (#5440) (Boshen)IdentifierName from TSThisParameter (#5327) (overlookmotel)1aa49af ast: [BREAKING] Remove JSXMemberExpressionObject::Identifier variant (#5358) (Dunqing)
1aa49af ast: [BREAKING] Remove JSXMemberExpressionObject::Identifier variant (#5358) (Dunqing)
32f7300 ast: [BREAKING] Add JSXElementName::IdentifierReference and JSXMemberExpressionObject::IdentifierReference (#5223) (Dunqing)
234a24c ast: [BREAKING] Merge UsingDeclaration into VariableDeclaration (#5270) (Kevin Deng 三咲智子)
accessibility field to AccessorProperty (#5290) (Dunqing)definite flag to AccessorProperty node (#5182) (DonIsaac)TSTypeAnnotations on AccessorProperty (#5179) (DonIsaac)@flow with recoverable errors as well" (#5297) (overlookmotel)@flow with recoverable errors as well (Boshen)JSXIdentifier conversion code into parser (#5345) (overlookmotel)byte_search! macro usage (#5234) (overlookmotel)b2ff2df parser: [BREAKING] Remove builder pattern from Parser struct (#5000) (Boshen)
b2ff2df parser: [BREAKING] Remove builder pattern from Parser struct (#5000) (Boshen)
f88970b ast: [BREAKING] Change order of fields in CallExpression (#4859) (Burlin)
Compiler and CompilerInterface (#4954) (Boshen)flag vars to flags (#5028) (overlookmotel)21f5762 codegen: Minify large numbers (#4889) (Boshen)
559baa5 parser: Clean up doc regarding performance; remove conformance (Boshen)
Nothing published for this version
a40a217 parser: Parse assert keyword in TSImportAttributes (#4610) (Boshen)
assert keyword in TSImportAttributes (#4610) (Boshen)ast_builder in more places. (#4612) (rzvxa)a40a217 parser: Parse assert keyword in TSImportAttributes (#4610) (Boshen)
assert keyword in TSImportAttributes (#4610) (Boshen)ast_builder in more places. (#4612) (rzvxa)7446e98 codegen: Align more esbuild implementations (#4510) (Boshen)
Source methods (#4576) (overlookmotel)Lexer::hex_digit (#4572) (overlookmotel)- not saturating_sub (#4561) (overlookmotel)| to a single match (#4575) (overlookmotel)Lexer::read_minus to a single match (#4574) (overlookmotel)Lexer::read_left_angle to a single match (#4573) (overlookmotel)Lexer::consume_2_chars (#4569) (overlookmotel)u8 not &u8 when iterating over bytes (#4568) (overlookmotel)? byte handler (#4563) (overlookmotel)868fc87 parser: Optimize conditional advance on ASCII values (#4298) (lucab)
f68b659 ast: [BREAKING] Reorder fields of ArrowFunctionExpression (#4364) (Dunqing)
ArrowFunctionExpression (#4364) (Dunqing)Programs hashbang field first (#4368) (overlookmotel)20cdb1f semantic: Align class scope with typescript (#4195) (Dunqing)
_ separators (#4259) (overlookmotel)ScopeFlags into visit_function (#4283) (overlookmotel)visit_function and Visit fields in the builder to be consistent (#4248) (Dunqing)5731e39 ast: [BREAKING] Store span details inside comment struct (#4132) (Luca Bruno)
decorators before everything else. (#4143) (rzvxa)b936162 ast/ast_builder: [BREAKING] Shorter allocator utility method names. (#4122) (rzvxa)
d347aed ast: [BREAKING] Generate ast_builder.rs. (#3890) (rzvxa)
ast_builder.rs. (#3890) (rzvxa)Nothing published for this version
7fe2a2f parser: Do not copy comments (#4067) (overlookmotel)
e32b4bc ast: [BREAKING] Store trivia comments in a sorted slice (#4045) (Luca Bruno)
d0eac46 parser: Use function instead of trait to parse normal lists (#4003) (Boshen)
dc6d45e ast,codegen: Add TSParenthesizedType and print type parentheses correctly (#3979) (Boshen)
TSParenthesizedType and print type parentheses correctly (#3979) (Boshen)parse_modifiers (take 2) (#3977) (DonIsaac)7b38bde parser: Parse modifiers with parse_modifiers (#3948) (DonIsaac)
parse_modifiers (#3948) (DonIsaac)6796891 ast: [BREAKING] Rename all instances of BigintLiteral to BigIntLiteral. (#3898) (rzvxa)
6796891 ast: [BREAKING] Rename all instances of BigintLiteral to BigIntLiteral. (#3898) (rzvxa)
1f85f1a ast: [BREAKING] Revert adding span field to the BindingPattern type. (#3899) (rzvxa)
ae09a97 ast: [BREAKING] Remove Modifiers from ts nodes (#3846) (Boshen)
1af5ed3 ast: [BREAKING] Replace Modifiers with declare and const on EnumDeclaration (#3845) (Boshen)
0673677 ast: [BREAKING] Replace Modifiers with declare on Function (#3844) (Boshen)
ee6ec4e ast: [BREAKING] Replace Modifiers with declare and abstract on Class (#3841) (Boshen)
9b38119 ast: [BREAKING] Replace Modifiers with declare on VariableDeclaration (#3839) (Boshen)
cfcef24 ast: [BREAKING] Add directives field to TSModuleBlock (#3830) (Boshen)
4456034 ast: [BREAKING] Add IdentifierReference to ExportSpecifier (#3820) (Boshen)
intrinsic keyword (#3767) (Boshen)accessor (#3926) (Boshen)&Atom to functions (#3818) (overlookmotel)BindingPattern type. (#3855) (rzvxa)try_parse (#3925) (Boshen)parse_function_or_constructor_type (#3892) (Boshen)Modifiers (#3849) (Boshen)- d6437fe Clean up some usages of with_labels (#3854) (Boshen)d65c652 parser: Display jsx mismatch error, e.g. (#3696) (Boshen)
<Foo></Bar> (#3696) (Boshen)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
f66059e ast: [BREAKING] Align TSImportType with ESTree (#2578) (Arnaud Barré)
AssignmentTargetRest (#2601) (Boshen)MethodDefinition and PropertyDefinition (#2536) (Boshen)preserveParans option (#2582) (Boshen)end_span and parse_identifier_kind which are on the hot path (#2612) (Boshen)memchr (#2528) (overlookmotel)byte_search macro evaluate to matched byte (#2555) (overlookmotel)byte_search macro usage (#2554) (overlookmotel)byte_search macro arms (#2553) (overlookmotel)byte_search macro (#2552) (overlookmotel)6b3b260 Codegen: Improve codegen (#2460) (Andrew McClenaghan)
TSModuleDeclaration.kind (#2487) (Boshen)async x [newline] => x (#2375) (Boshen)TSTypeAliasDeclaration (#2485) (Boshen)byte_search macro always unroll main loop (#2439) (overlookmotel)continue_if in byte_search macro not unsafe (#2440) (overlookmotel)Source + SourcePosition (#2373) (overlookmotel)byte_search macro (#2372) (overlookmotel)- a2c173d Remove panic! from examples (#2454) (Boshen)a3570d4 semantic: Report parameter related errors for setter/getter (#2316) (Dunqing)
SourcePosition (#2350) (overlookmotel)Source::set_position safe (#2341) (overlookmotel)Chars with Source (#2288) (overlookmotel)2578bb3 ast: Remove generator property from ArrowFunction (#2260) (Dunqing)
Token to 16 bytes (#2211) (overlookmotel)Token size from 16 to 12 bytes (#2010) (Boshen)lexer.current.chars directly (#2237) (overlookmotel)ByteHandlers unsafe (#2212) (overlookmotel)is_identifier methods consistent (overlookmotel)Your coding agent can read these notes before it upgrades. Set up the MCP server →