SWC
Rust-based JavaScript/TypeScript compiler, a drop-in super-fast alternative to Babel
Repository Health
Technical Analysis
SWC (Speedy Web Compiler) is a Rust-based platform for compiling, bundling, and minifying JavaScript and TypeScript. @swc/core is its Node.js binding — a native addon (via NAPI-RS, distributed as prebuilt binaries per platform) that exposes SWC’s Rust compiler pipeline to JavaScript build tools, offering transform and minify performance many times faster than Babel or Terser on equivalent workloads.
SWC underpins the compilation and minification steps of several major JavaScript toolchains, including Next.js and the Vite/Rollup ecosystem via plugins, and is designed as a near drop-in replacement for Babel’s transform API. Beyond @swc/core, the monorepo also produces @swc/helpers (runtime helpers injected by transformed output), WASM bindings for browser/edge use, and a large family of Rust crates (swc_ecma_parser, swc_ecma_ast, swc_common, etc.) that implement the parser, AST, and codegen independently of any JS binding.
What You Get
- A near drop-in replacement for Babel’s
transform/transformSyncAPI, backed by a Rust compiler instead of a JS one - Prebuilt native bindings (via NAPI-RS) for major platforms, so no local Rust toolchain is needed to install
@swc/core - TypeScript, JSX, and modern ECMAScript syntax support with configurable target/preset-env-style downleveling
- A JavaScript/TypeScript minifier as an alternative to Terser, exposed via
@swc/core’sminifyAPI - Companion packages (
@swc/helpers,@swc/wasm-web) and a family of reusable Rust crates (swc_ecma_parser,swc_ecma_ast,swc_common) for embedding SWC’s compiler pieces directly in other Rust tooling
Common Use Cases
- Replacing Babel in a build pipeline (webpack, Jest via
@swc/jest, or a custom bundler) to cut transform time on large codebases - Powering framework-level compilation, as Next.js does internally for its build and dev-server transforms
- Minifying production JavaScript bundles as a faster alternative to Terser
- Building custom Rust-based JS/TS tooling (linters, formatters, bundlers) on top of the underlying
swc_ecma_*andswc_commoncrates
Under The Hood
Architecture - The monorepo separates concerns cleanly across crates/ (pure Rust) and bindings//packages/ (language bindings). Core compiler logic lives in crates like swc_ecma_parser (tokenizer + parser), swc_ecma_ast (AST node definitions), swc_ecma_codegen (code generation), and swc_common (shared spans, source maps, error diagnostics) — each independently versioned and publishable to crates.io. swc_compiler_base and the top-level swc crate assemble these into a full compile pipeline (parse -> transform -> codegen), while bindings/binding_core_node wraps that pipeline via NAPI-RS to produce the @swc/core native addon, and bindings/binding_core_wasm produces the WASM build for browser/edge targets. CSS support follows the same pattern with a parallel swc_css_* crate family (parser, codegen, minifier, prefixer).
Tech Stack - Almost entirely Rust (97.5% of the codebase), using NAPI-RS for Node.js native bindings and wasm-bindgen-style tooling for WASM builds. The JS-facing packages/core publishes prebuilt binaries for a long list of platform/arch/libc targets (x86_64/aarch64 across Darwin, Windows MSVC, Linux gnu/musl, even PowerPC64LE and s390x), avoiding any local Rust compilation for consumers. The repo uses Cargo workspaces (crates/), a xtask crate for repo automation, and .changeset for JS package release management alongside Rust’s own crate versioning.
Code Quality - The crate suite has 1,407 Rust source files with 218 dedicated test files (plus extensive fixture-based snapshot testing common in compiler projects, which isn’t fully captured by a raw test-file count). Splitting the parser, AST, and codegen into separate crates keeps each concern testable in isolation, and the swc_ecma_compat_* family (es2015, es2016, …) isolates each ECMAScript-version downleveling transform into its own crate rather than one monolithic transform module.
API Design - @swc/core’s JS API deliberately mirrors Babel’s shape (transform, transformSync, parse, minify) to minimize migration friction for tools already built against Babel’s interface, while configuration is expressed through a .swcrc/options object that maps closely to Babel’s .babelrc mental model. The underlying Rust crates expose a lower-level, more idiomatic Rust API (visitor patterns via swc_ecma_visit) for embedding the compiler directly in other Rust programs, trading some ergonomics for full control over the compilation pipeline.
Used by 71 apps in this directory
Tianji
Analytics · Monitoring
Replace Google Analytics, UptimeKuma, and Prometheus with one self-hosted platform that tracks websites, monitors uptime, and reports server health.
Tolgee
Developer Tools
In-context localization platform that lets developers and translators edit app strings directly in the running application, with AI-powered machine translation and framework SDKs for React, Angular, Vue, and Svelte.
Tolgee
Developer Tools
In-context localization platform that lets developers and translators edit app strings directly in the running application, with AI-powered machine translation and framework SDKs for React, Angular, Vue, and Svelte.
Trigger.dev
AI Development · Automation · Developer Tools
Build and deploy fully-managed AI agents and background jobs in TypeScript — with no timeouts, durable retries, real-time observability, and elastic scaling built in.
Trigger.dev
AI Development · Automation · Developer Tools
Build and deploy fully-managed AI agents and background jobs in TypeScript — with no timeouts, durable retries, real-time observability, and elastic scaling built in.
Twake Drive
Collaboration · File Storage
Open-source, self-hosted file manager with collaborative drives, AI-powered summarization, and OnlyOffice document editing for teams who want full data sovereignty.
twenty
CRM
The open-source CRM you build, ship, and version like the rest of your stack — with customizable objects, AI agents, and a TypeScript SDK.
Wire
Collaboration · Team Chat · Video Conferencing
Open source end-to-end encrypted messaging for teams and enterprises — self-host for complete control over your communications and data.