oxc-project/oxc
⚓ A collection of high-performance JavaScript tools.
Backblaze Generative Media Hackathon
Build the next generation of AI media apps with Genblaze, stored on Backblaze B2. $10,000 in prizes.
Loading star history...
Use Cases & Benefits
- Oxc is a high-performance collection of JavaScript and TypeScript tools written in Rust, including parser, linter, minifier, formatter, transformer, and resolver.
- Key technologies include Rust for speed and reliability, with tools offering 2-100x faster performance than existing JavaScript tools like ESLint and SWC.
- Strengths are exceptional speed, full JavaScript/TypeScript compatibility, modularity, and minimal configuration; limitations include some tools still in prototype or work-in-progress state.
- Organizations can integrate Oxc for scalable, fast linting, parsing, and transformation in CI/CD pipelines, improving developer experience and build times in large codebases.
- Ideal use cases are large JavaScript/TypeScript projects needing fast linting, parsing, and minification, especially where performance and reliability are critical, such as e-commerce and monorepos.
About oxc
⚓ Oxc
The Oxidation Compiler is a collection of high-performance tools for JavaScript and TypeScript written in Rust.
Our goal is to enable a new generation of faster, more reliable development tools by providing:
- Performance: 2-100x faster than existing JavaScript tools
- Reliability: 100% compatibility with JavaScript and TypeScript standards
- Modularity: Use individual tools or compose them into complete toolchains
- Developer Experience: Clear error messages and seamless editor integration
We are building a parser, linter, formatter, transformer, minifier, resolver ... all written in Rust.
For more information, check out our documentation at oxc.rs and architecture guide in ARCHITECTURE.md.
VoidZero Inc.
Oxc is a project of VoidZero, see our announcement Announcing VoidZero - Next Generation Toolchain for JavaScript.
If you have requirements for JavaScript tools at scale, please get in touch!
🙋Who's using Oxc?
- Rolldown uses the oxc crate for parsing and transformation.
- Nova engine uses the oxc crate for parsing.
- Rolldown, swc-node and knip use the oxc_resolver crate for module resolution.
- Projects and companies like Preact, Shopify, ByteDance and Shopee uses oxlint for linting.
- ...and many more
✍️ Contribute
See CONTRIBUTING.md for guidance.
Check out some of the good first issues or ask us on Discord.
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.
⚡️ Linter Quick Start
The linter is ready to catch mistakes for you. It comes with 93 rules turned on by default (out of 430+ in total) and no configuration is required.
To get started, run oxlint or via npx:
npx oxlint@latest
To give you an idea of its capabilities, here is an example from the vscode repository, which finishes linting 4800+ files in 0.7 seconds.
⚡️ Performance
- The parser aims to be the fastest Rust-based ready-for-production parser.
- The linter is more than 50 times faster than ESLint, and scales with the number of CPU cores.
⌨️ Rust, Node.js and Wasm Usage
Rust
Individual crates are published, you may use them to build your own JavaScript tools.
- The umbrella crate oxc exports all public crates from this repository.
- The AST and parser crates oxc_ast and oxc_parser are production ready.
- The resolver crate oxc_resolver for module resolution is also production ready.
- Example usages of these crates can be found in their respective
crates/*/examplesdirectory.
We have optimized Rust compilation speed to ensure developing your own Oxc-based tools remains efficient. Our CI runs complete in approximately 3 minutes.
Node.js
- via napi: oxc-parser, oxc-transform