用 Rust 编写的高性能 JavaScript/TypeScript 工具集,包含解析器、代码检查、格式化、转换、压缩和模块解析。
- Star
- 34,194
- Fork
- 1,547
- 未关闭 Issue
- 413
- 最近提交
- 13小时前
这是什么?
SWC(Speedy Web Compiler)是一个用 Rust 编写的 TypeScript 与 JavaScript 编译器,能够解析、转换并输出现代 ECMAScript 和 TypeScript 代码。它既可以作为 Rust 库使用,也可以在 JavaScript 中通过 @swc/core 等 npm 包调用,Rust 用户则可以直接依赖 ECMAScript 解析器等独立 crate。
项目定位是替代 Babel 来编译 Web 代码,并提供了从 Babel 迁移的对比文档。npm 包为 x64 和 arm64 架构的 macOS、Windows MSVC 以及 Linux GNU 和 musl 提供原生二进制。使用时支持 Node.js 10 及以上版本,开发时需要 Node.js 20 及以上。
Rust crate 的最低支持版本为 1.73,并提供脚本用于批量更新项目中的 SWC crate。
核心功能
- 01解析并编译使用现代 ECMAScript 语法编写的 TypeScript 和 JavaScript 代码。
- 02既可作为 Rust 库通过独立 crate 使用,也可在 JavaScript 中通过 npm 包调用。
- 03为 x64 和 arm64 架构的 macOS、Windows MSVC 以及 Linux GNU 和 musl 提供原生二进制。
- 04提供从 Babel 迁移的指南以及与 Babel 的性能对比。
适用场景
- 在 JavaScript 或 TypeScript 构建流程中替代 Babel,以加快编译速度。
- 用 Rust 开发需要解析或转换 ECMAScript 代码的工具。
- 为面向多个 Node.js 版本的 Web 项目编译 TypeScript 代码。
快速上手
- 1
按照 swc.rs 网站上的安装指南,用于 JavaScript 场景
- 2
在 Rust 中使用时,请阅读 rustdoc,并从 parser crate 入手
使用前须知
- 开发该项目需要 Node v20 或更高版本。
- Rust crate 的最低支持 Rust 版本为 1.73。
标签
常见问题
- swc 是什么?
- 用 Rust 编写的超快速 TypeScript/JavaScript 编译器与解析器,可在 Rust 与 JavaScript 中使用。 SWC(Speedy Web Compiler)是一个用 Rust 编写的 TypeScript 与 JavaScript 编译器,能够解析、转换并输出现代 ECMAScript 和 TypeScript 代码。它既可以作为 Rust 库使用,也可以在 JavaScript 中通过 @swc/core 等 npm 包调用,Rust 用户则可以直接依赖 ECMAScript 解析器等独立 crate。
- swc 可以免费使用吗?用的什么许可证?
- swc 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- swc 还在维护吗?
- 活跃维护中。swc 最近一次提交是在 2026年10月21日。
- swc 适合用来做什么?
- 在 JavaScript 或 TypeScript 构建流程中替代 Babel,以加快编译速度。 用 Rust 开发需要解析或转换 ECMAScript 代码的工具。 为面向多个 Node.js 版本的 Web 项目编译 TypeScript 代码。
- swc 怎么安装和运行?
- 按照 swc.rs 网站上的安装指南,用于 JavaScript 场景 在 Rust 中使用时,请阅读 rustdoc,并从 parser crate 入手
- 在哪里获取 swc?
- 源代码和安装说明在 GitHub 上:https://github.com/swc-project/swc
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个 JavaScript 编译器,可将新版语法转译为目标环境可运行的代码。
为 JavaScript 增加可选静态类型的超集语言,编译输出可读的标准 JavaScript。
一个零配置的 Web 构建工具,无需配置文件即可打包 HTML、CSS、JavaScript 和各类静态资源。
一款速度极快的 JavaScript、TypeScript、JSX 和 CSS 打包工具,提供 CLI、JS 和 Go 接口。
一个快速的 JavaScript Markdown 解析与编译库,可在浏览器、Node.js 和命令行中使用。