261 releases

0.33.19 Mar 5, 2024
0.33.15 Jan 24, 2024
0.33.12 Dec 8, 2023
0.33.9 Nov 15, 2023
0.1.3 Nov 26, 2018

#740 in Parser implementations

Download history 68224/week @ 2023-11-27 59363/week @ 2023-12-04 58519/week @ 2023-12-11 61468/week @ 2023-12-18 39965/week @ 2023-12-25 45668/week @ 2024-01-01 59746/week @ 2024-01-08 57306/week @ 2024-01-15 64126/week @ 2024-01-22 67462/week @ 2024-01-29 75675/week @ 2024-02-05 72567/week @ 2024-02-12 67924/week @ 2024-02-19 77058/week @ 2024-02-26 72809/week @ 2024-03-04 34555/week @ 2024-03-11

258,943 downloads per month
Used in 306 crates (155 directly)

Apache-2.0

405KB
9K SLoC

swc

Make the web (development) faster.

downloads (@swc/core) downloads (3rd party)

undefined GitHub release (latest SemVer)

GitHub code size in bytes node-current (scoped)

Discord

SWC (stands for Speedy Web Compiler) is a super-fast TypeScript / JavaScript compiler written in Rust. It's a library for Rust and JavaScript at the same time. If you are using SWC from Rust, see rustdoc and for most users, your entry point for using the library will be parser.

Also, SWC tries to ensure that

If you select the latest version of each crates, it will work

for rust users.

MSRV of crates is currently nightly, but we will support stable rustc again in the future.


If you are using SWC from JavaScript, please refer to docs on the website.

Documentation

Check out the documentation in the website.

Features

Please see comparison with babel.

Performance

Please see benchmark results on the website.

Supporting swc

Sponsors

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:

Contributing

See CONTRIBUTING.md. You may also find the architecture documentation useful (ARCHITECTURE.md).

License

SWC is primarily distributed under the terms of the Apache License (Version 2.0).

See LICENSE for details.


lib.rs:

Utilities for the swc project

Cargo features

tty-emitter

Adds default implementation of Emitter. Enabling this feature will add tty-related dependencies.

sourcemap

Adds methods to generate web sourcemap.

plugin-base

Base mode for plugins, which can be enabled by plugin-mode or plugin-rt.

This mode creates a trait which can be used to override swc_common itself.

plugin-rt

Creates an implementation for the plugin trait. This implements simply invokes thread-locals declared in swc_common.

plugin-mode

Allows replacing operations related to thread-local variables with a trait.

ahash

Use ahash instead of rustc_hash for AHashMap and AHashSet.

Dependencies

~3–11MB
~125K SLoC