NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3776 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
Most releases are documented
notes for 42 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
4 years old
214 releases · first in 2023
One column per quarter.
61003c7 minifier: Fold undefined argument in non delegating yield ( #27324 ) (Armano)
debug_name return lifetime to the underlying AST node (#27295) (sadan)TS1243 for abstract async methods (#27192) (camc314)TS1242 for interfaces with abstract modifier (#27191) (camc314)merge_import_export (#27226) (Armano)wrap_to_avoid_ambiguous_else (#27194) (Armano)debug_name return lifetime to the underlying AST node (#27295) (sadan)02331c8 str: Add JSStr , JSChar and JSStrBuilder types ( #26435 ) (Dunqing)
JSStr, JSChar and JSStrBuilder types (#26435) (Dunqing)reportDiagnostics option to expose recoverable React Compiler diagnostics (#26624) (Jack)JSXExpressionContainer example (#26975) (camc314)JSXAttribute value description (#26974) (camc314)TSNumberKeyword example (#26973) (camc314)RegExpFlags::V flag features (#26972) (camc314)JSXText example (#26970) (camc314)TSIntrinsicKeyword example (#26967) (camc314)TSTupleType example syntax (#26966) (camc314)TSPropertySignature usage example (#26964) (camc314)Class abstract example values (#26963) (camc314)TSTypeParameter (#26962) (camc314)pure comment to NewExpression field (#26961) (camc314)TSNonNullExpression docs (#26960) (camc314)TSInstantiationExpression (#26908) (camchenry)1fac655 coverage: Support new TypeScript fixture layout ( #26226 ) (camc314)
await tokens (#26619) (camc314)ca649e0 ecma: Define math constants as known globals and resolve their types ( #26585 ) (Armano)
ascii_only option (#25994) (Samuel Attard)typeof x < 'u' (#26367) (Armano)accessor modifiers on methods (#26617) (camc314)readonly modifier on constructors (#26612) (camc314)in expressions in class static blocks (#26423) (camc314)in in arrow block bodies within for initializers (#26395) (camc314)Ident (#26380) (Dunqing)66744f0 parser: [ BREAKING ] Rename panicked to fatal_error in ParserReturn ( #26382 ) (overlookmotel)
panicked to fatal_error in ParserReturn (#26382) (overlookmotel)MAX_LEN to 256 bytes below u32::MAX (#26352) (overlookmotel)ArenaHashSet with any Default hasher (#26372) (Dunqing)GetNodeId trait (#26145) (camc314)export ... from (#26389) (camc314)< token opening type argument list (#26328) (overlookmotel)Allocator::data_end_ptr behind fixed_size feature (#26248) (camc314)charAt panic on 32-bit (#26244) (camc314)Ident for property mangler (#26334) (sapphi-red)Ident for variable names to keep (#26333) (sapphi-red)Ident instead of Str in KeepVar (#26332) (sapphi-red)IdentHashSet in PrivateMemberUsageStack (#26331) (sapphi-red)parse_jsx_element_name (#26355) (overlookmotel)parse_jsx_element_name (#26354) (overlookmotel)token field from LexerCheckpoint (#26350) (overlookmotel)a31567a allocator: [ BREAKING ] Make Allocator::cursor_ptr and data_end_ptr private ( #26081 ) (overlookmotel)
Allocator::cursor_ptr and data_end_ptr private (#26081) (overlookmotel)!0 and !1 in place for boolean context to 1 and 0 (#26050) (Armano)! (#25930) (Armano)this param (#26169) (Dunqing)Math.round only exact half ties (#26150) (camc314)indexOf search argument (#26149) (camc314)Program when sending AST to JS plugins (#26077) (overlookmotel)Int32Array (#26085) (overlookmotel)2cde1f6 rust: Address nightly deprecations ( #25998 ) (Boshen)
FormalParameterRest spans (#26021) (camc314)if to for in sloppy mode when containing function declaration (#25638) (sapphi-red)PrivateIdentifiers which have changed (#25958) (overlookmotel)if to for when the body contains a function declaration (#25637) (sapphi-red)# before private identifier in TS signature key (#25938) (overlookmotel)+ when the other operand has side effects (#25645) (Kotaro Chikuba)node param from write and markMap functions in sourcemap builds (#25989) (overlookmotel)start and end to write and mark functions (#25986) (overlookmotel)write calls with writeIdent (#25984) (overlookmotel)last param from writeWithMapNamed (#25983) (overlookmotel)mapNames (#25979) (overlookmotel)mark and write calls in printImportAttributes (#25972) (overlookmotel)node param from printString and printNonNegativeFloat (#25971) (overlookmotel)printNonNegativeFloat write mapping directly (#25968) (overlookmotel)lastWasPostfixClose (#25888) (overlookmotel)FormalParameterRest spans (#26021) (camc314)526c2b3 codegen: Remove deprecated test APIs ( #25889 ) (camc314)
sourceText only once (#25887) (overlookmotel)growMappingBuffer (#25886) (overlookmotel)location passed to recordSourceMapping always a number (#25884) (overlookmotel)recordSourceMapping (#25883) (overlookmotel)last in printImportAttributes and printIf (#25882) (overlookmotel)printJSXElement (#25881) (overlookmotel)printParams (#25880) (overlookmotel)365274e packages/codegen: [ BREAKING ] printSync return an object ( #25720 ) (overlookmotel)
sourceFilename option (#25854) (overlookmotel)oxc-codegen package (#25488) (overlookmotel)** with Number::exponentiate, not IEEE pow (#25644) (Kotaro Chikuba)Infinity and NaN in enum evaluation (#25604) (camc314)ToNumber of !x from ToBoolean (#25595) (Kotaro Chikuba)decorators on FormalParameterRest (#25582) (camc314)unsafe (#25551) (camc314)export default interface (#25487) (overlookmotel)< tokens (#25564) (camc314)printSync (#25722) (overlookmotel)decorators on FormalParameterRest (#25582) (camc314)a33788e ast: [ BREAKING ] Group class heritage into ClassHeritage ( #25360 ) (camc314)
ClassHeritage (#25360) (camc314)TSInterfaceHeritage::expression to TSTypeName (#24360) (camc314)VariableDeclarator::kind (#25319) (camc314)ArenaVec::push_mut (#25338) (overlookmotel)Parser::parse_expression (#25371) (camc314)067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
TSIndexSignature::parameter (#25154) (camc314)TSIndexSignatureName::name to Ident (#25150) (camc314)ExportDeclaration, ExportFromDeclaration (#25095) (camc314)ArrowFunctionBody enum (#24987) (camc314)Box from AST builder methods (#25038) (overlookmotel)GetSpan for Comment (#25147) (leaysgur)IntoIn<ArenaBox> where child method does (#25033) (overlookmotel)1ac5ac7 ast: [BREAKING] Tighten bound on AstBuild trait (#24925) (overlookmotel)
AstBuild trait (#24925) (overlookmotel)Ident from oxc_ast crate (#24861) (overlookmotel)ImportMeta and NewTarget (#24775) (overlookmotel)common_js_require docs (#24945) (connorshea)ImportMeta and NewTarget (#24777) (overlookmotel)54cc121 ast: [BREAKING] Split MetaProperty into ImportMeta and NewTarget (#24557) (camc314)
MetaProperty into ImportMeta and NewTarget (#24557) (camc314)NONE to be passed to AST builder methods where Option<ArenaVec> is expected (#24629) (overlookmotel)ArenaVec params of AST builder methods (#24621) (overlookmotel)clone_in for semantic IDs (#24564) (overlookmotel)f85f0d8 ast: Delegate inherited enum variants in clone_in and estree derives (#23555) (Boshen)
61fbf10 ast: Implement ReplaceWith on all AST types (#24013) (overlookmotel)
ReplaceWith on all AST types (#24013) (overlookmotel)typeAnnotation as TSTypeAnnotation | null (#23113) (Boshen)PrivateFieldExpression (#24008) (overlookmotel)0ab64ec ast: Silence deprecation warnings within files defining deprecated AstBuilder methods (#23889) (overlookmotel)
AstBuilder and NONE in builder module (#23876) (overlookmotel)Str and Ident methods take &GetAllocator (#23781) (overlookmotel)GetAllocator::allocator take &self (#23676) (overlookmotel)AllocatorAccessor trait to GetAllocator (#23675) (overlookmotel)AstBuilders (#23875) (overlookmotel)AstBuilder methods (#23889) (overlookmotel)AstBuilder methods take self not &self (#23891) (overlookmotel)ExportNamedDeclaration plain builder methods return boxed nodes (#23783) (overlookmotel)AstBuilder method for Expression::V8IntrinsicExpression (#23766) (overlookmotel)#[deprecated] to legacy AstBuilder methods (#23877) (overlookmotel)NONE (#23765) (overlookmotel)7a76cd3 estree: [BREAKING] Make whether to include TS fields a runtime option (#23574) (overlookmotel)
ESTree config use methods not consts (#23573) (overlookmotel)Nothing published for this version
4c35362 ast: [BREAKING] Add AstBuilder::template_element_escape_raw and template_element_escape_raw_with_lone_surrogates methods (#23047) (overlookmot
AstBuilder::template_element_escape_raw and template_element_escape_raw_with_lone_surrogates methods (#23047) (overlookmotel)escape_template_element_raw (#23052) (overlookmotel)TSTypeAssertion unary precedence (#23002) (Boshen)AstBuilder::template_element_escape_raw avoid allocation if no escape required (#23053) (overlookmotel)9c71f2e ast, codegen, formatter: Add WithClauseKeyword::as_str helper and use it (#22791) (camc314)
WithClauseKeyword::as_str helper and use it (#22791) (camc314)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
502e804 ast: [BREAKING] Reduce size of TSTypePredicateName (#21711) (overlookmotel)
TSTypePredicateName (#21711) (overlookmotel)JSXExpression (#21710) (overlookmotel)ArrayExpressionElement (#21709) (overlookmotel)CommentNodeId (#21679) (overlookmotel)#[inline(always)] to node_id methods on enums with all variants unboxed (#21707) (overlookmotel)#[inline(always)] to node_id methods on enums (#21706) (overlookmotel)Nothing published for this version
ce5072d parser: Support turbopack magic comments (#20803) (Kane Wang)
turbopack magic comments (#20803) (Kane Wang)382958a span: [BREAKING] Remove re-exports of string types from oxc_span crate (#21246) (overlookmotel)
oxc_span crate (#21246) (overlookmotel)Span fields as i32s (#21135) (overlookmotel)Int32Array in raw transfer deserializer (#21132) (overlookmotel)0503a78 napi/parser, linter/plugins: Faster deserialization of raw fields (#20923) (overlookmotel)
raw fields (#20923) (overlookmotel)59fd797 parser: Mark pure comments that cannot be applied (#20687) (Boshen)
76cd0b1 ast: Add method to retrieve SymbolIds from BindingPattern (#20532) (camc314)
SymbolIds from BindingPattern (#20532) (camc314)AstKind::address as #[inline] (#20586) (overlookmotel)AstKind::span as #[inline] (#20585) (overlookmotel)NodeId field after Span in structs (#20584) (overlookmotel)WithClause (#20575) (overlookmotel)Nothing published for this version
f8fbd6e linter/plugins: Remove hashbang property from AST (#20365) (overlookmotel)
hashbang property from AST (#20365) (overlookmotel)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
429d876 semantic: Assign ast node ids during semantic build (#19263) (Boshen)
node_id field to all AST struct nodes (#18138) (Boshen)18320c6 span: Store file extension in SourceType (#18893) (Boshen)
SourceType (#18893) (Boshen)Nothing published for this version
777fc40 ast: [BREAKING] Add Ident type (#18354) (Boshen)
Ident type (#18354) (Boshen)ThisExpression from TSModuleReference (#18489) (Boshen)Nothing published for this version
9135b0b ast: [BREAKING] Move scope from TSEnumDeclaration to TSEnumBody (#18058) (Boshen)
TSEnumDeclaration to TSEnumBody (#18058) (Boshen)d5979dc minifier: Do not allocate when checking to convert const to let (#17730) (camchenry)
const to let (#17730) (camchenry)Nothing published for this version
1005c0a ast: Fix docs for AssignmentPattern in BindingPattern enum (#17309) (camc314)
e08fdf1 linter/plugins: Include hashbang in comments (#17231) (overlookmotel)
Nothing published for this version
320c09f ast, parser, linter, codegen, formatter: [BREAKING] Rename CommentKind::Block to CommentKind::SinglelineBlock (#16501) (Dunqing)
CommentKind::Block to CommentKind::SinglelineBlock (#16501) (Dunqing)CommentKind::MultilineBlock (#16479) (Dunqing)8c10694 semantic: Expose get_comment_at method (#16439) (camc314)
Nothing published for this version
74cf572 ast: [BREAKING] Make source field of TSImportType a StringLiteral (#16114) (copilot-swe-agent)
source field of TSImportType a StringLiteral (#16114) (copilot-swe-agent)TSImportType argument field to source (#16110) (overlookmotel)Expression::is_jsx method (#16154) (Dunqing)TSImportType argument field to Literal (#16109) (overlookmotel)cbb27fd ast: [BREAKING] Add TSGlobalDeclaration type (#15712) (overlookmotel)
TSGlobalDeclaration type (#15712) (overlookmotel)tokens property to Program (#16020) (overlookmotel)b2af6b5 ast: [BREAKING] Remove AstKind for Argument (#13902) (taearls)
UnstableAddress trait (#15700) (overlookmotel)is_inside_comment check (#15753) (camc314)get_binding_identifiers (#15710) (camc314)TSModuleDeclarationBody::as_module_block_mut (#15713) (overlookmotel)TSModuleDeclaration::has_use_strict_directive (#15730) (overlookmotel)8d69661 allocator: Add Address::from_ref method (#15318) (overlookmotel)
Address::from_ref method (#15318) (overlookmotel)GetAddress for ModuleDeclarationKind and PropertyKeyKind (#15313) (overlookmotel)parent field to FormalParameterRest and TSParameterProperty in TS type defs (#15337) (overlookmotel)AssignmentTargetPropertyIdentifier (#15304) (overlookmotel)FormalParameter (#15302) (overlookmotel)TSEmptyBodyFunctionExpression as expression in Function::is_expression (#14945) (Liang Mi)b063e0e ast: Add is_inside_comment method (#14907) (camc314)
is_inside_comment method (#14907) (camc314)TSConstructorType (#14676) (camc314)TSCallSignatureDeclaration (#14672) (camc314)comments being accessed after file is linted (#14727) (overlookmotel)with statements (#14652) (Boshen)parent property from comments (#14624) (overlookmotel)comments getter (#14728) (overlookmotel)Comment (#14623) (overlookmotel)b1a9a03 linter/plugins: Implement SourceCode#getAllComments (#14589) (Arsh)
SourceCode#getAllComments (#14589) (Arsh)JSXText({value}) in debug_name() (#14461) (leaysgur)source_text and comments fields in ContentEq for Program (#14370) (overlookmotel)7e4d04f napi/parser: Add option to add parent prop to AST nodes with raw transfer (#14344) (overlookmotel)
parent prop to AST nodes with raw transfer (#14344) (overlookmotel)range field (#14319) (overlookmotel)range field to TemplateElement (#14339) (overlookmotel)preserveParens option from raw transfer deserializers (#14338) (overlookmotel)Your coding agent can read these notes before it upgrades. Set up the MCP server →