mrkeyoor.com_
Sat 07 Nov 06:54 UTC
Dev Toolsevaluationupdated 24 Oct 2026

swc review

SWC, short for Speedy Web Compiler, is a JavaScript and TypeScript compiler written in Rust. It provides libraries for both Rust and JavaScript developers.

+0stars / 7d
Verdict

Our SWC source build failed after 8 seconds, and the test command ended with 42 failed files and no tests reported. This run cannot establish compiler correctness or transformation speed. Application teams can evaluate the documented prebuilt packages separately, checking platform support and representative output. Contributors first need a working Rust and JavaScript source environment.

We ran it

Lab card: what happened when we ran swcScreenshot of swc (swc.rs)
Install✓ · 14s1 packages · 496 MB
Build✗ · 8s
Tests✗ · 6sran, no count parsed
Repo82183 files~3,337,534 lines of source · 397.7 MB · 16 CI workflows

Answers from our run

Does swc build from source?

Dependencies installed in 14 seconds (1 packages), and the build failed. We cloned commit b86e5c9 into a clean Debian container with 3 CPUs and no project-specific setup.

Do swc's tests pass?

No. The project's own test command exited unsuccessfully after 6 seconds, and its output did not expose an individual test count.

Who should not use swc?

Contributors expecting a JavaScript-only workflow: the README describes Rust libraries, and our build failed while invoking Cargo metadata.

What are the alternatives to swc?

Babel, esbuild. Our SWC source build failed after 8 seconds, and the test command ended with 42 failed files and no tests reported.

SetupN/AThe source build failed, and the documented prebuilt-package route was not reproduced, so application setup ease remains unassessed.
DocsN/AThe supplied README and installation extracts support setup guidance, but too few documented workflows were evaluated to rate completeness.
CommunityN/AThe supplied activity and issue extracts do not establish maintainer response times or the quality of contributor support.
MaturityN/AThe source run reported no executed tests, leaving compiler correctness and production reliability unassessed.

Discussed on

  1. hnSpeedy Web Compiler – A Rust port of Babel and Closure Compiler382 points
  2. hnSpeedy Web Compiler – a fast TypeScript/JavaScript compiler85 points
  3. hnSwc-project/swc: Babel port in Rust4 points
  4. hnRust-based TypeScript type-checker project leader threatens paid solution3 points
  5. hnSwc-project/swc: super-fast JavaScript compiler written in rust3 points

Who it’s for

Application teams evaluating the documented prebuilt packages and prepared to check their emitted code.
Rust developers who need a JavaScript parser or compiler library inside another tool.
Compiler contributors prepared to work with both JavaScript and Rust.

Who it’s NOT for

Contributors expecting a JavaScript-only workflow: the README describes Rust libraries, and our build failed while invoking Cargo metadata.
Teams enabling React Compiler without checking source maps: issue 12602 reports missing mappings inside compiled functions.
Teams whose platform falls outside the documented binary targets and who cannot maintain a source build.

Setup reality

Our sandbox installed SWC commit b86e5c9 on October 10, 2026, in 14 seconds, recording 1 dependency and 496 MB on disk. The build failed with exit 1 after 8 seconds. Tests failed with exit 1 after 6 seconds; the summary listed 42 failed test files and no tests.

The documented application route installs @swc/cli and @swc/core as prebuilt packages. That route was not reproduced in this run. The source-build tail shows a Cargo metadata invocation and Node.js v20.20.2, but not enough context to establish why the invocation failed. The lab-node:22 image label is configuration, not evidence of the runtime version.

Check the documented binary targets before evaluating the packages. Contributors should follow the development requirements separately: the supplied README lists Node v10+ for usage, Node v20+ for development, and Rust 1.73 as the minimum supported Rust version for crates.

Using SWC packages and building SWC are separate decisions

SWC's installation guide documents prebuilt packages through @swc/cli and @swc/core. Our failed source build does not establish whether those packages suit an application. It does show that the checkout workflow did not complete in our sandbox.

SWC, short for Speedy Web Compiler, is a JavaScript and TypeScript compiler written in Rust. Its README describes libraries for Rust and JavaScript developers and points Rust users toward the parser. Application maintainers and compiler contributors therefore have different setup decisions to make.

What happened when we ran it

Our sandbox installed SWC commit b86e5c9 on October 10, 2026, in 14 seconds, recording 1 dependency and 496 MB on disk. Our SWC source build failed after 8 seconds, with exit 1. The test command failed with exit 1 after 6 seconds. The recorded configuration assigned 3 CPUs and 8 GB of RAM and used the image label lab-node:22. The build tail identifies Node.js v20.20.2; the image label does not establish the runtime version.

The failing build excerpt shows an attempt to invoke cargo metadata against /work/repo/Cargo.toml, followed by lifecycle errors. It does not establish why that invocation failed. A missing Rust installation is not a supported diagnosis from this excerpt.

The test summary listed 42 failed test files and no tests. Its stack excerpt names binding.js and native-test-setup.ts. This run supplies no executed-test correctness evidence, and the failed-file count must not be presented as 42 compiler defects. The timings also do not measure transformation performance.

The checkout contained 82,183 files, about 3,337,534 source lines, and occupied 397.7 MB. Our scan found monorepo workspaces and 16 CI workflow files. Although it found no tests directory, the test command discovered test files elsewhere. These counts describe repository layout, not test coverage or CI effectiveness.

Check the package route against your platform

The installation guide documents prebuilt packages through @swc/cli and @swc/core. It lists Apple Silicon and x64 Macs, several Linux architectures, Alpine Linux, Android aarch64, and Windows targets. For Alpine Linux, it specifically says to also install @swc/core-linux-musl. Check the environment that will load the native package against the documented targets.

The supplied README lists Node v10+ for usage and Node v20+ for development, with Rust 1.73 as the minimum supported Rust version for crates. Those are documented requirements, not compatibility results from our run. We did not reproduce the prebuilt-package route or establish the requirements of every package release.

For an application evaluation, start with the documented installation path and inspect representative output in the environments your project supports. For contribution work, first establish a working source build before relying on the repository's test suite.

Check React Compiler source maps separately

Issue 12602 reports missing mappings inside functions compiled with jsc.transform.reactCompiler. The reporter says the component's export function header retains a mapping while the compiled body does not. The report includes input, configuration, output, and mapping strings, and identifies @swc/core 1.16.20, with the same behavior also reported for 1.16.2 and 1.16.18.

This is an upstream report opened on October 23, 2026, not a defect reproduced in our October 10 run at commit b86e5c9. It does not establish that every SWC transformation has this problem.

If your team uses React Compiler and depends on source maps for breakpoints, stack traces, or coverage, inspect mappings for a representative component before enabling the transform. Successful code generation alone would not answer that debugging question.

Consider alternatives by the work you need done

Babel compiles JavaScript features into forms supported by older environments. If an existing Babel configuration already produces the required output, keeping it is a reasonable choice until an SWC migration has a demonstrated benefit. Our run provides no comparative output or performance measurements.

Esbuild documents built-in JavaScript, CSS, TypeScript, and JSX support, plus ESM, CommonJS, and CSS bundling. Evaluate it when bundling JavaScript and CSS is the immediate requirement. Those documented features provide a reason to consider it; this review does not establish that it will integrate successfully with a particular project.

The useful next step depends on your role: application teams can evaluate a documented package target and their own output fixtures, while contributors need to resolve the source-build workflow first.

Alternatives

ProjectWhat it isPick it when
Babel gh↗A JavaScript compiler that converts language features for environments that do not support them natively.Keep an existing Babel path when it already produces the required output and an SWC migration has no demonstrated benefit for your application.
esbuild gh↗A bundler with built-in JavaScript, CSS, TypeScript, and JSX support.Evaluate it when bundling JavaScript and CSS is the immediate requirement and its documented features cover your project.

Sources

  1. SWC README
  2. SWC installation and binary targets
  3. React Compiler source-map report 12602
  4. Babel README
  5. esbuild README

More dev tools reviews

git-cliff · blackbird · czkawka · controller-runtime · openchoreo · terraform-provider-azurerm · the whole board →