# Oxlint ### 🚀 Features -60b945dlinter/nextjs/no-typos: Implement suggestion (#26091) (Mikhail Baev) ### 🐛 Bug Fixes -33ac4b0linter/lsp: Prevent tsgolint from holding onto processes (#25570) (Adrian Schaedle) -baf4b1elinter/import/no-empty-named-blocks: Make empty value import removal a suggestion (#26155) (camc314) -77cfaeclinter/eslint/object-shorthand: Preserve `__proto__` semantics (#26154) (camc314) -fa3c082linter/unicorn/prefer-set-size: Ignore shadowed `Set` constructors (#26153) (camc314) -e412cf2linter: Clamp invalid JS plugin locations (#26144) (camc314) -d86c113linter: Normalize reversed JS plugin locations (#26138) (camc314) -73c09b2linter/eslint/no-use-before-define: Run on JS, JSX files (#26114) (camc314) -03ef0f2linter/unicorn/no-useless-spread: Treat typed arrays as a distinct value hint (#26067) (Aadharsh Pannirselvam) -bd15905linter/react/no-unstable-nested-components: Check nested component object property names (#26101) (camc314) -3910e2blinter/eslint/no-unassigned-vars: Skip Svelte and Vue files (#26042) (Hamody We) -047f7calinter/plugins: Fix interaction between JS plugins and Vue rules (#26080) (overlookmotel) -8531b9blinter/plugins: Alter method for obtaining mutable `Program` when sending AST to JS plugins (#26077) (overlookmotel) -dc464fflinter/unicorn/prefer-math-min-max: Avoid unsafe autofix (#26060) (camc314) ### 📚 Documentation -464ddd1linter: Support a shared short description for jest/vitest rules (#26186) (connorshea) -9db5ad3linter: Add short description to `vue/no-dupe-keys` (#26183) (connorshea) -db66f58linter: Correct export/import mismatch in bar and foo example (#25927) (billychannnnnn) -d5be037linter/typescript/switch-exhaustiveness-check: Clarify default case comment pattern (#26100) (camc314) # Oxfmt ### 🚀 Features -1fb37b6formatter/css: Format declaration-shaped raw-prelude rules (postcss nested config blocks) (#26194) (leaysgur) ### 🐛 Bug Fixes -57e8e22formatter_css: Space a folded sign after a call in Less operations (#26134) (leaysgur) -e4298fbformatter/jsdoc: Follow CommonMark for interrupting lists and guard wrapping from creating them (#26098) (leaysgur) -a1e21c2formatter: Apply head body policy everywhere (#26074) (leaysgur) -676b7e1formatter: Keep comments in their for-head slot, before an empty-statement body and do-while (#26073) (leaysgur) -3bbcea6formatter: Keep comments between a head and its body out of the braces across all constructs (#26071) (leaysgur) -57537a2formatter: Place comments between a head and open paren (#26058) (leaysgur) -e2d53e7formatter: Place comments between a statement head and its body (#26043) (leaysgur) -662556cformatter: Print the idempotent placement for comments in dropped parens (#26041) (leaysgur) -faf11d9formatter_yaml: Keep trailing whitespace in block scalars (#26072) (leaysgur) ### ⚡ Performance -ac4785adiagnostics: Use fixed ANSI styles (#26130) (Boshen) ### 📚 Documentation -b879608formatter,formatter_graphql,formatter_yaml: Annotate own-line comment inlining as known policy violation (#26131) (leaysgur) -181953boxfmt,formatter_core,formatter,formatter_yaml,formatter_css,formatter_graphql: Extract `DIVERGENCES.md` out from `AGENTS.md` (#26121) (leaysgur) -a67cb9dformatter,formatter_core: Document comment moving policy (#26075) (leaysgur) -fc175b0formatter_core: Clarify idempotency test infra (#26069) (leaysgur)
DIVERGENCES.md out from AGENTS.md (#26121)
⚓ 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.
🔧 Lint or Format a Codebase
🧰 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:
- Add a GitHub Star to the project
- Join us on Discord
- Follow me on X and post about this project
📚 Other Resources
Sponsored By
📖 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.