Rust-based platform for the Web
Go to file
2019-02-25 19:47:53 +09:00
.cargo Allow stable rust (#118) 2019-01-17 23:17:16 +09:00
.vscode Performance & Node binding (#84) 2018-12-21 16:54:36 +09:00
atoms Implement module transforms (#133) 2019-02-05 12:50:19 +09:00
common Implement deserialize for ast nodes (#274) 2019-02-24 14:12:04 +09:00
ecmascript Update references 2019-02-25 19:47:53 +09:00
macros Implement deserialize for ast nodes (#274) 2019-02-24 14:12:04 +09:00
scripts ECMAScript parser (#1) 2018-01-12 16:53:06 +09:00
src Reduce binary size (#116) 2019-01-10 18:23:25 +09:00
testing Cleanup (#152) 2019-02-11 11:39:20 +09:00
.gitignore More transcompilers (#49) 2018-11-14 19:40:46 +09:00
.gitmodules inline benchmark files and remove submodule 2018-12-22 18:35:44 +09:00
.rustfmt.toml Performance & Node binding (#84) 2018-12-21 16:54:36 +09:00
.travis.yml Fix travis (#222) 2019-02-16 18:58:29 +09:00
ARCHITECTURE.md Update ARCHITECTURE.md (#156) 2019-02-11 17:50:06 +09:00
bors.toml Add bors to prevent misktake. 2018-01-14 14:44:32 +09:00
Cargo.toml Move config from libswc to node-swc 2019-01-09 18:40:14 +09:00
CONTRIBUTING.md Add CONTRIBUTING.md and ARCHITECTURE.md 2018-12-04 15:11:50 +09:00
LICENSE-APACHE initial commit 2017-12-22 22:07:03 +09:00
LICENSE-MIT initial commit 2017-12-22 22:07:03 +09:00
README.md Add backer 2019-02-24 12:19:03 +09:00
rust-toolchain Ecmascript codegen (#40) 2018-10-25 13:17:05 +09:00

babel

Make the web (development) faster.

npm Downloads undefined

Travis Status Coverage Gitter

Supporting swc

Backers on Open Collective Sponsors on Open Collective

swc is a community-driven project, and is maintained by a group of volunteers. If you'd like to help support the future of the project, please consider:

  • Giving developer time on the project. (Message us on Gitter for guidance!)
  • Giving funds by becoming a sponsor (see below)!

Open Collective Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]

Gold Sponsors

Silver Sponsors

Bronze Sponsors

Backers

Become a backer and get your image on our README on Github with a link to your site.

Documentation

Check out the documentation in the website.

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
    • 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.