• Stars
    star
    1,902
  • Rank 23,424 (Top 0.5 %)
  • Language
    Rust
  • License
    MIT License
  • Created about 1 year ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

โš“ A suite of high-performance tools for JavaScript and TypeScript written in Rust.

OXC Logo

The Oxidation Compiler is creating a suite of high-performance tools for the JavaScript / TypeScript language re-written in Rust:

Philosophy

This project follows philosophies from the Rome and Ruff projects.

  1. JavaScript tooling could be rewritten in a more performant language
  2. An integrated toolchain can tap into efficiencies that are not available to a disparate set of tools

Milestone

This project currently has a fully working parser, a prototype for the linter as well as the minifier.

The current objectives are:

  • Publish the linter as a product
  • Finish the minifier

Contributing

This project is an invitation for you to come and learn Rust with us, any contributions to this project are appreciated.

To get started, 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:

Linter

The linter is fast to the extent that it feels broken.

With 45 rules implemented, testing in the VSCode repo on a Mac M2:

vscode ๎‚  main โฏ npx oxlint@latest src
Finished in 388ms on 3477 files with 45 rules using 8 threads.
Found 798 warnings.

And also in a huge monorepo using Mac i7:

Finished in 5568ms on 51931 files with 45 rules using 12 threads.

On my Intel i7 6-core, the linter is around 80 times faster than ESLint.

See benchmark for details.

Try it out yourself!

The linter is currently usable and it can potentially catch a few mistakes for you:

npx oxlint@latest path

Parser Conformance

The cargo coverage command reports the following conformance summary

Test262 Summary:
AST Parsed     : 44000/44000 (100.00%)
Positive Passed: 44000/44000 (100.00%)
Negative Passed: 3915/3915 (100.00%)

Babel Summary:
AST Parsed     : 2065/2071 (99.71%)
Positive Passed: 2062/2071 (99.57%)
Negative Passed: 1332/1502 (88.68%)

TypeScript Summary:
AST Parsed     : 2337/2337 (100.00%)
Positive Passed: 2331/2337 (99.74%)
Negative Passed: 673/2535 (26.55%)

Test262 conformance is complete. TypeScript parsing is complete.

Only unstable stage 3 json-modules and stage 3 decorators tests are skipped.

Learning Resources

Maintainers

Credits

This project was incubated with the assistance of these exceptional mentors and their projects:

License

MIT

Third Party Licenses

Licenses are listed in THIRD-PARTY-LICENSE

This project partially copies code from the following projects:

Project License
eslint/eslint MIT
typescript-eslint/typescript-eslint MIT
import-js/eslint-plugin-import MIT
jest-community/eslint-plugin-jest MIT
microsoft/TypeScript Apache 2.0
rome/tools MIT
mozilla-spidermonkey/jsparagus MIT Apache 2.0
acorn MIT
zkat/miette Apache 2.0
sindresorhus/globals MIT
terser BSD
evanw/esbuild MIT
google/closure-compiler Apache 2.0
tdewolff/minify MIT

More Repositories

1

rspack

A fast Rust-based web bundler ๐Ÿฆ€๏ธ
Rust
7,375
star
2

modern.js

Modern.js is a web engineering system, including a web framework and a npm package solution.
TypeScript
4,151
star
3

garfish

A powerful micro front-end framework ๐Ÿšš
TypeScript
2,334
star
4

rspress

๐Ÿฆ€๐Ÿ’จ A fast Rspack-based static site generator.
TypeScript
1,090
star
5

rsbuild

The Rspack-based build tool. It's fast, out-of-the-box and extensible.
TypeScript
675
star
6

rsdoctor

A one-stop build analyzer for Rspack and Webpack.
TypeScript
189
star
7

rspack-sources

Rusty webpack-sources port.
Rust
116
star
8

webpack-inspector

Devtool for webpack.
TypeScript
97
star
9

mdx-rs

Rust MDX compilation binding for Rspress
Rust
77
star
10

reduck

A Redux-based state management library
TypeScript
69
star
11

rspack-website

Website of Rspack
TypeScript
60
star
12

swc-plugins

SWC plugins and binding
Rust
50
star
13

blogs

Web Infra team working group
35
star
14

modern-js-examples

Examples for Modern.js web engineering system
30
star
15

nodejs_resolver

Rust
27
star
16

unport

A Universal Port with strict type inference capability for cross-JSContext communication.
TypeScript
27
star
17

awesome-rspack

A curated list of awesome things related to Rspack, Rsbuild and Rspress
27
star
18

codesmith

Micro generator for development life-cycle.
TypeScript
20
star
19

electron-sprout

A front-end friendly desktop framework based on Electron.
TypeScript
20
star
20

rspack-dev-guide

A guide to how Rspack works and how to contribute to it.
17
star
21

deep-dive-into-tla

Blog Post - Deep Dive into Top-level await
14
star
22

napi-template

Template for generating rust-based native projects
JavaScript
11
star
23

web-infra-QoS

Web Infra QoS
TypeScript
9
star
24

rspack-ecosystem-ci

Rspack Ecosystem CI
TypeScript
8
star
25

rspack-migration-showcase

migration showcase for rspack
TypeScript
8
star
26

bundler-benchmark

JavaScript
7
star
27

libuild

The home for various projects about libuild
TypeScript
7
star
28

rspack-repro

A GitHub template for create reproduction with Rspack fastly.
JavaScript
7
star
29

webinfra.org

HTML
7
star
30

.github

The profile of Web Infra organization.
6
star
31

actions

TypeScript
4
star
32

rfcs

RFC for changes to web-infra projects
3
star
33

rspack-ecosystem-benchmark

JavaScript
2
star
34

with-rspack-demo

Demo application that bundle with rspack
CSS
2
star
35

modern-js-dev.github.io

modernjs.dev
HTML
2
star
36

rspack-demo

A demo for rspack bundler
JavaScript
2
star
37

module-tools-examples

module-tools examples
TypeScript
1
star
38

clabot-config

1
star
39

rspack-compat

JavaScript
1
star
40

media

media resources for Rspack
1
star