oxc-guard 7bf68f70c2 release(apps): oxlint v1.83.0 && oxfmt v0.68.0 (#26631)
# Oxlint
### 🚀 Features

- afe950d linter/react: Update lint rules to accomodate changes in React 19.3 (#26571) (Connor Shea)

### 🐛 Bug Fixes

- fb87ed7 linter/unicorn/prefer-array-flat-map: Report `.filter().flatMap()` chains (#26626) (camc314)
- 336b654 linter/unicorn/prefer-at: Report single-character substring calls (#26623) (camc314)
- a5bba6d linter/eslint/no-unused-vars: Respect rest params after-used option (#26579) (Bartok)
- c1470a2 linter/eslint/no-unused-vars: Preserve ambient implicit exports (#26582) (Dex Hunter)
- 9a469d2 linter/unicorn/prefer-global-this: Preserve window event method references (#26611) (Dex Hunter)
- aaff758 linter/unicorn/prefer-default-parameters: Report violation for `??=` and `||=` (#26607) (Bartok)
- 2bed25a linter/unicorn/prefer-array-flat: Skip plain `concat` normalization (#26604) (im10furry)
- 72bc7f2 oxlint: Replace backlashes path for "no js runtime" diagnostic (#26599) (Sysix)
- 1aa5ec1 linter/typescript/prefer-for-of: Handle computed collections (#26584) (camc314)
- 1e90019 linter/typescript: Mark `no-unnecessary-type-parameters` and `prefer-find` suggestions as implemented (#26586) (Mikhail Baev)
- 4231536 linter: Compare label text in runtime optimization assertion (#26526) (camc314)
- 36d5534 linter: Include file path in diagnostic assertion (#26525) (camc314)
- 31508b1 parser: Reject return types on constructor overloads (#26523) (camc314)

### ⚡ Performance

- 1d681b0 linter/react/jsx-pascal-case: Avoid temporary name segment vector (#26531) (camc314)
- 2ad7d49 linter/promise/catch-or-return: Avoid temporary formatting vectors (#26505) (camc314)
- 203235b linter/jsx-a11y/no-static-element-interactions: Avoid role vector (#26504) (camc314)
- 2e95167 linter/jsx-a11y/anchor-is-valid: Avoid temporary attribute vector (#26501) (camc314)
- deafdba linter/react/exhaustive-deps: Avoid temporary dependency vector (#26502) (camc314)
- 4f1627f linter/oxc/branches-sharing-code: Compute deletion spans lazily (#26500) (camc314)
- c068fd2 linter/react/jsx-curly-brace-presence: Avoid newline position allocation (#26499) (camc314)
- ed4357c linter/eslint/no-restricted-properties: Skip empty configurations (#26497) (camc314)
- 92e41b7 linter/oxc/no-barrel-file: Iterate module requests directly (#26498) (camc314)
- 5255ee3 linter/unicorn/prefer-single-call: Avoid temporary argument vector (#26494) (camc314)
- 96ef365 linter/unicorn/prefer-includes: Reduce suggestion allocations (#26492) (camc314)
- a71fd7f linter/unicorn/no-new-buffer: Avoid temporary argument vector (#26491) (camc314)
- 11085e7 linter/jsdoc/require-yields: Short-circuit JSDoc checks (#26488) (camc314)
- 9b1aff8 linter/unicorn/no-useless-undefined: Skip calls without trailing undefined (#26481) (camc314)
- 1e5d5d7 linter/eslint/no-unused-vars: Skip absent global declaration checks (#26457) (camc314)
- 403f899 linter/eslint/no-undef: Check globals once per unresolved name (#26456) (camc314)
- 118adb0 linter/eslint/no-restricted-imports: Avoid redundant import scans (#26455) (camc314)
- ab848f2 linter/eslint/no-useless-assignment: Skip tracking exported symbols (#26449) (camc314)
- 1b6e409 linter/unicorn/prefer-object-from-entries: Avoid allocating configured paths (#26448) (camc314)
- 2206875 linter/eslint/new-cap: Avoid unnecessary callee name allocations (#26447) (camc314)

### 📚 Documentation

- b927e0a linter/typescript/await-thenable: Add missing lang for markdown doc comment (#26438) (Ari Perkkiö)
# Oxfmt
### 🚀 Features

- 586f27a formatter_core: Add `prefix_align` builder and `Tag::(Start|End)Prefix` (#26520) (leaysgur)
- dc45cc3 formatter_test: Test Prettier dynamic snippet tests (#26469) (leaysgur)

### 🐛 Bug Fixes

- d7e0c82 formatter: Keep an enum member's trailing suppress comment (#26549) (leaysgur)
- d2fe01e formatter: Unify suppress comment behavior (#26547) (leaysgur)
- d35d89f oxfmt: Skip shutdown delay on fixed Node 24 releases (#26518) (Pablo García)
- aef8b4a formatter_css: Handle less-test-suites failures (#26513) (leaysgur)
- 9dbddca formatter: Keep group flat for own-line comment in JSX (#26475) (leaysgur)
- d226e6f formatter_yaml: Bump oxc-yaml-parser to 0.0.6 (#26472) (leaysgur)
- 8b41fc0 formatter_yaml: Clamp `tab_width: 0` to 1 to keep semantics (#26471) (leaysgur)
- dea2ba0 formatter_core: Do not panic with align(0) (#26468) (leaysgur)
- bf1d3f6 formatter: Check `this_param` for simple parameters test (#26474) (leaysgur)
- 33cdc84 formatter: Keep cast-target assignment and commented parameter patterns (#26429) (leaysgur)
- 876fbe3 oxfmt: Expand `Fill` parts in tsx-in-vue (#26427) (leaysgur)

### 📚 Documentation

- 66fda4f formatter: Update AGENTS.md comment handling (#26551) (leaysgur)
- 41abcba formatter: Note why jsx-test-suite snippets stay off (#26515) (leaysgur)
2026-09-14 11:31:15 +00:00
…
…
2024-10-02 22:37:53 +08:00



Oxc logo


MIT licensed Build Status Code Coverage CodSpeed Badge

Discord chat Playground Website

⚓ Oxc

/oʊ ɛks siː/

The Oxidation Compiler is a collection of high-performance tools for JavaScript and TypeScript written in Rust.

Oxc is part of VoidZero's vision for a unified, high-performance toolchain for JavaScript. It powers Rolldown (Vite's bundler) and enables the next generation of ultra-fast development tools that work seamlessly together.

For more information, check out our website at oxc.rs.

* Oxidation is the chemical process that creates rust

🙋 Who's using Oxc?

Rolldown and Nuxt use Oxc for parsing. Rolldown also uses Oxc for transformation and minification. Nova, swc-node, and knip use oxc_resolver for module resolution. Preact, Shopify, ByteDance, and Shopee use oxlint for linting.

See more projects using Oxc →

🔧 Lint or Format a Codebase

  • Lint: Oxlint — npx oxlint@latest
  • Format: Oxfmt — npx oxfmt@latest

🧰 Build Tooling on Top of Oxc

  • Parse JavaScript and TypeScript: Parser
  • Transform TypeScript, JSX, and modern JavaScript: Transformer
  • Minify JavaScript for production builds: Minifier
  • Resolve modules for JavaScript and TypeScript: Resolver

✍️ Contribute

Check out some of the good first issues or ask us on Discord.

See CONTRIBUTING.md for guidance, or read the complete contributing guide on our website →

If you are unable to contribute by code, you can still participate by:

📚 Other Resources

Sponsored By

Our sponsors

📖 License

Oxc is free and open-source software licensed under the MIT License.

Thank you to namespace.so for powering our CI/CD pipelines with fast, free macOS and Linux runners.

Oxc ports or copies code from other open source projects, their licenses are listed in Third-party library licenses.

S
Description
migrate-oxlint: Guide for migrating a project from ESLint to Oxlint. Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's linter from ESLint to…; migrate-oxfmt: Guide for migrating a project from Prettier or Biome to Oxfmt. Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's formatter from…
Readme MIT 551 MiB
Languages
Rust 83.4%
JavaScript 9.4%
TypeScript 7.1%