NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3777 most downloaded on crates.io
A collection of JavaScript tools written in Rust.
Last release 3 days ago
05 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Some releases are documented
notes for 24 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
208 releases · first in 2023
One column per quarter.
d55dbe2 ast/estree: Raw transfer (experimental) (#9516) (overlookmotel)
b0a0a82 ast/estree: Reduce overhead serializing static strings (#9396) (overlookmotel)
55ed1df ast/estree: Shorten ESTree impls for enums (#9275) (overlookmotel)
ESTree impls for enums (#9275) (overlookmotel)unsafe blocks (#9322) (overlookmotel)216b33f ast/estree: [BREAKING] Replace serde with custom ESTree serializer (#9256) (overlookmotel)
serde with custom ESTree serializer (#9256) (overlookmotel)#[builder(default)] attribute for structs and enums (#9203) (overlookmotel)cllippy::nursery rules (#9232) (Boshen)Serialize impls (#9248) (overlookmotel)b5eb6e5 minifier: Improve remove_unused_expression (#9071) (Boshen)
remove_unused_expression (#9071) (Boshen)Nothing published for this version
b7ff7e1 span: [BREAKING] Export ContentEq trait from root of oxc_span crate (#8869) (overlookmotel)
ContentEq trait from root of oxc_span crate (#8869) (overlookmotel)directives in body (#8981) (hi-ogawa)Serialize impls flatten struct fields (#8904) (overlookmotel)#[estree(skip)] to types (#8877) (overlookmotel)#[clone_in(default)] to types (#8876) (overlookmotel)#[content_eq(skip)] attr (#8875) (overlookmotel)#[ast] attr to semantic ID types (#8867) (overlookmotel)#[allow] with #[expect] (#8930) (overlookmotel)8a6ae8a minifier: Do not change const to let if assignment to constant variable. (#8761) (Boshen)
const to let if assignment to constant variable. (#8761) (Boshen)Nothing published for this version
23b49a6 linter: Use cow_to_ascii_lowercase instead cow_to_lowercase (#8678) (Boshen)
cow_to_ascii_lowercase instead cow_to_lowercase (#8678) (Boshen)Atoms (#8641) (overlookmotel)Nothing published for this version
7066d1c ast, span, syntax, regular_expression: [BREAKING] Remove ContentHash (#8512) (overlookmotel)
ContentHash (#8512) (overlookmotel)7eb6ccd ast: [BREAKING] Remove unused and not useful ContentHash (#8483) (Boshen)
ContentHash (#8483) (Boshen)41ddf60 minfier: Add CompressOptions::target (#8179) (Boshen)
CompressOptions::target (#8179) (Boshen)a || (a = b) to a ||= b (#8315) (sapphi-red)a = a + b to a += b (#8314) (sapphi-red)typeof foo === 'number' => typeof foo == 'number' (#8112) (Boshen)instanceof has error throwing side effect (#8378) (Boshen)be4feb4 syntax: Add SymbolId::new method (#8041) (overlookmotel)
SymbolId::new method (#8041) (overlookmotel)e7476a1 semantic: Remove serialize (#8015) (Boshen)
serialize (#8015) (Boshen)84b75a0 semantic: [BREAKING] Remove ScopeFlags::Modifiers (#7935) (overlookmotel)
ScopeFlags::Modifiers (#7935) (overlookmotel)#![expect(non_snake_case)] (#7863) (overlookmotel)cargo +nightly fmt (#7877) (Boshen)0f367e5 semantic: Improve the logic of resolving references to be cleaner (#7829) (Dunqing)
Nothing published for this version
00fea92 napi/parser: Expose span positions of import.meta (#7677) (Boshen)
import.meta (#7677) (Boshen)ExportEntry::is_type (#7676) (Boshen)serde features (#7738) (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)
ImportEntry and ExportEntry (#7583) (Boshen)FxDashMap for exported bindings (#7525) (overlookmotel)FxDashMap (#7520) (overlookmotel)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)ModuleRecord (#7568) (Boshen)27b2268 semantic: [BREAKING] Remove SymbolFlags::Export (#7414) (Dunqing)
27b2268 semantic: [BREAKING] Remove SymbolFlags::Export (#7414) (Dunqing)
6f0fe38 semantic: [BREAKING] Correct all ReferenceFlags::Write according to the spec (#7388) (Dunqing)
SymbolFlags::TypeLiteral (#7415) (Dunqing)2534cde syntax: Add AssignmentOperator::to_logical_operator and to_binary_operator methods (#7350) (overlookmotel)
AssignmentOperator::to_logical_operator and to_binary_operator methods (#7350) (overlookmotel)ReferenceFlags::Read and Write (#7368) (Boshen)ReferenceFlags (#7392) (overlookmotel)dc0215c ast_tools: Add #[estree(append_to)], remove some custom serialization code (#7149) (ottomated)
169fa22 ast_tools: Default enums to rename_all = "camelCase" (#6933) (ottomated)
1145341 ast_tools: Output typescript to a separate package (#6755) (ottomated)
clippy::wildcard_imports (#6860) (Boshen)85e69a1 ast_tools: Add line breaks to generated code for ESTree derive (#6680) (overlookmotel)
ESTree derive (#6680) (overlookmotel)impl Serialize (#6684) (overlookmotel)#[allow] attrs to top of generated files (#6679) (overlookmotel)e310e52 parser: Generate Serialize impls in ast_tools (#6404) (ottomated)
Serialize impls in ast_tools (#6404) (ottomated)ZWSP to is_irregular_whitespace (#6662) (Boshen)oxc_syntax to oxc_ecmascript (#6471) (Boshen)03bc041 syntax: Remove some unsafe code creating IDs (#6324) (overlookmotel)
Nothing published for this version
Nothing published for this version
933a743 semantic: Add interfaces and functions to SymbolFlags::ClassExcludes (#6057) (DonIsaac)
SymbolFlags::ClassExcludes (#6057) (DonIsaac)e0a8959 minifier: Compute void number as undefined (#6028) (Boshen)
void number as undefined (#6028) (Boshen)Nothing published for this version
c96b712 syntax: [BREAKING] Remove SymbolFlags::ArrowFunction (#5857) (overlookmotel)
SymbolFlags::ArrowFunction (#5857) (overlookmotel)AstNode and AstNodes (#5872) (DonIsaac)042afa9 syntax: Correctly check for valid RedeclarationIds (#5759) (overlookmotel)
RedeclarationIds (#5759) (overlookmotel)Nothing published for this version
90facd3 ast: Add ContentHash trait; remove noop Hash implementation from Span (#5451) (rzvxa)
ContentHash trait; remove noop Hash implementation from Span (#5451) (rzvxa)ContentEq trait. (#5427) (rzvxa)is_identifier_name (#5426) (overlookmotel)is_identifier_name (#5425) (overlookmotel)ReferenceFlags::Type if it is used within a TSTypeQuery (#5444) (Dunqing)generate_derive for CloneIn in types outside of oxc_ast crate. (#5280) (rzvxa)Nothing published for this version
d262a58 syntax: [BREAKING] Rename ReferenceFlag to ReferenceFlags (#5023) (overlookmotel)
ReferenceFlag to ReferenceFlags (#5023) (overlookmotel)48821c0 semantic,syntax: Add SymbolFlags::ArrowFunction (#4946) (DonIsaac)
Nothing published for this version
Nothing published for this version
82e2f6b ast_codegen: Process AST-related syntax types. (#4694) (rzvxa)
syntax types. (#4694) (rzvxa)CloneIn for the AST-related items. (#4730) (rzvxa)9f8f299 syntax: Prevent creating invalid u32 IDs (#4675) (overlookmotel)
a558492 codegen: Implement BinaryExpressionVisitor (#4548) (Boshen)
BinaryExpressionVisitor (#4548) (Boshen)1667491 syntax: Correct is_reserved_keyword_or_global_object's incorrect function calling. (#4484) (Ethan Goh)
is_reserved_keyword_or_global_object's incorrect function calling. (#4484) (Ethan Goh)NonZeroU32 (#4466) (overlookmotel)AstNodeId a niche (#4469) (overlookmotel)ScopeId a niche (#4468) (overlookmotel)NonMaxU32 for IDs (#4467) (overlookmotel)f8565ae transformer/typescript: Unexpectedly removed class binding from ExportNamedDeclaration (#4351) (Dunqing)
92ee774 semantic: Add ScopeFlags::CatchClause for use in CatchClause (#4205) (Dunqing)
ScopeFlags::CatchClause for use in CatchClause (#4205) (Dunqing)ExportSpecifier (#4320) (Dunqing)AstNodeId to u32 (#4264) (overlookmotel)AstNodeId::dummy into a constant field. (#4308) (rzvxa)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
d995f94 semantic: Resolve reference incorrectly when a parameter references a parameter that hasn't been defined yet (#4004) (Dunqing)
0c81fbe syntax: Use NonZeroU32 for SymbolId and ReferenceId (#3970) (Boshen)
NonZeroU32 for SymbolId and ReferenceId (#3970) (Boshen)Nothing published for this version
99a40ce semantic: export default foo should have ExportLocalName::Default(NameSpan) entry (#3823) (Boshen)
export default foo should have ExportLocalName::Default(NameSpan) entry (#3823) (Boshen)Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →