mirror of
https://github.com/swc-project/swc.git
synced 2024-11-23 17:54:15 +03:00
Rust-based platform for the Web
babelcompilerecmascriptecmascript-parserjavascriptparserruststarred-repostarred-swc-project-reposwctypescripttypescript-compilertypescript-parser
1fabc3fa3e
This reduces binary size |
||
---|---|---|
.cargo | ||
.vscode | ||
atoms | ||
common | ||
ecmascript | ||
macros | ||
scripts | ||
src | ||
testing | ||
.gitignore | ||
.gitmodules | ||
.rustfmt.toml | ||
.travis.yml | ||
ARCHITECTURE.md | ||
bors.toml | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md | ||
rust-toolchain |
speedy web compiler
Make the web (development) faster.
swc is rust port of babel and closure compiler.
Installation
Currently this requires nightly version of rust.
npm i -D swc
or
yarn add --dev swc
Features
Parsers
- es2019
- jsx
- typescript
Transforms
New generation javascript to old-days javascript.
-
es3
- member-expression-literals
- property-literals
- reserved-words
-
es5
- property-mutators
-
es2015
- arrow-functions
- block-scoped-functions
- block-scoping
- Note: this might be buggy (at this time)
- classes
- computed-properties
- destructuring
- duplicate-keys
- for-of
- function-name
- instanceof
- literals
- new-target
- object-super
- parameters
- shorthand-properties
- spread
- sticky regex (
y
flag) - template-literals
- invalid escape sequences inside tagged template literals. (aka es2018)
- typeof-symbol
- unicode-regex
-
es2016
- exponentiation-operator
-
es2017
- async-to-generator
-
es2018
- async-generator-functions
- dotall-regex
- object-rest-spread
- Using symbol as a key
- optional-catch-binding
- unicode-property-regex
-
react
- jsx
Performance
The lower bound of the speedup compared to babel is 16. The benchmarks were run on Macbook pro, dual core, 2.3GHz Intel Core i5, 16 GB ram
performance | |
---|---|
swc (ffi) | 1,086 ops/sec ±0.77% (84 runs sampled) |
swc-optimize (ffi) | 1,060 ops/sec ±0.63% (87 runs sampled) |
swc (ffi, simd) | 1,295 ops/sec ±0.87% (89 runs sampled) |
swc-optimize (ffi, simd) | 1,270 ops/sec ±0.24% (89 runs sampled) |
babel | 65.72 ops/sec ±6.45% (62 runs sampled) |
Contributing
See CONTRIBUTING.md. You may also find the architecture documentation useful (ARCHITECTURE.md).
License
swc is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.