mirror of
https://github.com/swc-project/swc.git
synced 2024-12-23 21:54:36 +03:00
Rust-based platform for the Web
babelcompilerecmascriptecmascript-parserjavascriptparserruststarred-repostarred-swc-project-reposwctypescripttypescript-compilertypescript-parser
4ff6d4ed4a
swc_common: - update rustc-ap crates to v313 swc_ecma_ast: - use bool instead of Option<Span> swc_ecma_parser: - remove LexerInput - use uncons_while - assert only on debug mode - use Visit instead of Fold while verifying - replace debug! with trace! - disable logging while benchmarking - drop slog swc_ecma_transforms: - classes: fold Decl instead of Stmt swc: - add nodejs binding |
||
---|---|---|
.cargo | ||
.vscode | ||
atoms | ||
common | ||
ecmascript | ||
ffi | ||
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 -SD @swc-project/swc
or
yarn add --dev @swc-project/swc
Features
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
- getter / setter
- 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
- optional-catch-binding
- unicode-property-regex
Performance
The benchmarks were run on Macbook pro, dual core, 2.3GHz Intel Core i5, 16 GB
performance | |
---|---|
swc (ffi) | 1,086 ops/sec ±0.77% (84 runs sampled) |
swc-optimize (ffi) | 1,060 ops/sec ±0.63% (87 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.