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
GrowthBook
Ab Testing Experimentation · Analytics · Developer Tools
Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.
Helicone
AI Development · Analytics · Monitoring
An open-source AI gateway and LLM observability platform that routes requests to 100+ models while logging cost, latency, and full traces for every call.
Helicone
AI Development · Analytics · Monitoring
An open-source AI gateway and LLM observability platform that routes requests to 100+ models while logging cost, latency, and full traces for every call.
Hexabot
AI Development · Automation
Build and run agentic workflows across channels with YAML, tools, and RAG
Hi.Events
Ecommerce · Scheduling
Self-hosted event ticketing platform that keeps your attendee data, brand, and revenue completely under your control.
highlight.io
Analytics · Developer Tools · Monitoring
Open-source full-stack monitoring that unifies session replay, error tracking, logging, and distributed tracing so you can stop context-switching between tools.
highlight.io
Analytics · Developer Tools · Monitoring
Open-source full-stack monitoring that unifies session replay, error tracking, logging, and distributed tracing so you can stop context-switching between tools.
GraphQL Hive
Developer Tools · Devops · Monitoring
Open-source GraphQL schema registry and observability platform with breaking change detection, federation support, and CI/CD integration for teams of any size.
Kibana
Analytics · Monitoring
Your open source window into the Elastic Stack — query, visualize, and act on data stored in Elasticsearch with real-time dashboards, AI-assisted search, and automated alerting.