SWC v1.15.26: Der Rust-basierte JavaScript-Compiler bleibt in Bewegung

SWC v1.15.26: Der Rust-basierte JavaScript-Compiler bleibt in Bewegung

lschvn4 Min. Lesezeit

swc-project/swc v1.15.26 erschien am 14. April 2026 und markiert einen weiteren Wartungs-Release im regelmäßigen Zyklus des Rust-basierten JavaScript- und TypeScript-Compilers. Das Projekt, das durch seine Integration in Next.js, Parcel und Deno produktionserprobt wurde, liefert weiterhin Kompatibilitätskorrekturen und Leistungsverbesserungen ohne größere neue Funktionen in diesem Zyklus.

Was ist SWC?

SWC (speedy web compiler) begann als direkter Babel-Ersatz, geschrieben in Rust, um die Leistungsmerkmale der Sprache zu nutzen. Während Babel als JavaScript-Prozess läuft, der eine Kette von Transforms interpretiert, kompiliert SWC dieselben Transforms im Voraus in nativen Maschinencode. Das Ergebnis ist ein Compiler, der JavaScript- und TypeScript-Code 20- bis 70-mal schneller verarbeitet als Babel, abhängig von der Arbeitslast.

Das Projekt ist um eine Kern-Compiler-Crate herum organisiert, die Parsing, Transformation und Serialisierung von JavaScript- und TypeScript-Code übernimmt. Ein separates Crate-System macht diese Transforms als isolierte Operationen verfügbar, die zusammengesetzt werden können — ähnlich wie Babel-Plugins — aber in einer Rust-Laufzeitumgebung ausgeführt werden.

Änderungen in v1.15.26

Der v1.15.26-Release enthält Patches über die gemeinsame API-Oberfläche und Transform-Durchläufe von SWC. Obwohl dies ein Patch-Release ist, spiegelt es die laufende Wartungsarbeit wider, die SWC mit den neuesten ECMAScript-Vorschlägen und TypeScript-Syntax kompatibel hält. Der vorherige Stable-Release, v1.15.24, wurde am 4. April herausgebracht, und v1.15.25 folgte kurz darauf — das Projekt hat einen ungefähr wöchentlichen Patch-Rhythmus beibehalten.

Wichtige Bereiche der laufenden Arbeit umfassen:

  • TypeScript-Transform-Kompatibilität — sicherstellen, dass der SWC-Transform für TypeScript mit dem TypeScript-Compiler-Verhalten für neuere TypeScript-Syntaxfunktionen übereinstimmt
  • ES2026/ES2027-Vorschlags-Unterstützung — SWC verfolgt den ECMAScript-Vorschlags-Stufenprozess und aktualisiert dementsprechend Parser und Transforms
  • Fehlerbehebungen im Minifier — der SWC-Minifier konkurriert mit Terser um die JavaScript-Ausgabegrößenoptimierung

Das Rust-Tooling-Ökosystem

SWC existiert in einem überfüllten, aber gesunden Bereich der JavaScript-Tooling-Landschaft. Die drei großen Rust-basierten JavaScript-Tool-Projekte nehmen jeweils verschiedene Nischen ein:

  • esbuild (von Evan Wallace) — das älteste, konzentriert auf rohe Kompilierungsgeschwindigkeit
  • SWC — das Babel-kompatibelste, tiefste Integration in bestehende Frameworks
  • OXC (Oxidation Compiler) — das neueste, unterstützt vom Vercel/Nx-Team, zielt auf vollständige TypeScript-Typprüfungs-Abdeckung und Rollup-kompatibles Bundling

SWCs Vorteil gegenüber den neueren Konkurrenten ist seine Erfolgsbilanz. Es läuft seit Jahren in großem Maßstab in Produktion in Next.js-Anwendungen, was bedeutet, dass Grenzfälle gefunden und behoben wurden. OXC holt schnell auf — seine neuesten Releases (v0.125 und v0.126) haben TypeScript-spezifische Transforms hinzugefügt, die zuvor SWC oder den TypeScript-Compiler selbst erforderten.

Der gesunde Wettbewerb zwischen diesen drei Projekten hat die Messlatte für das gesamte JavaScript-Tooling-Ökosystem erhöht. Was vor fünf Jahren eine Babel-Plugin-Kette erfordert hätte, die in einem langsamen JavaScript-Prozess läuft, wird jetzt von nativem Code in Millisekunden erledigt.

SWC Verwenden

Für die meisten Entwickler wird SWC indirekt über Next.js oder Parcel angetroffen. Die SWC-Crate kann jedoch direkt als Build-Tool oder in benutzerdefiniertes Tooling integriert werden:

use swc_common::{sync::Lrc, FileName, SourceMap};
use swc_ecma_parser::{lexer::Lexer, Parser, StringInput, TsSyntax};
use swc_ecma_ast::*;
use swc_ecma_codegen::Emitter;

fn main() {
    let cm: Lrc<SourceMap> = Default::default();
    let fm = cm.new_source_file(
        FileName::Custom("example.ts".into()).into(),
        "const x: number = 1;".into(),
    );
    let lexer = Lexer::new(
        TsSyntax::default(),
        Default::default(),
        StringInput::from(&*fm),
        None,
    );
    let mut parser = Parser::new_from(lexer);
    let module = parser.parse_module().unwrap();
    // ... Transforms und Codegen
}

Die Rust-API bietet feinkörnige Kontrolle über die Kompilierungspipeline. Für JavaScript-basiertes Tooling stellen die npm-Pakete @swc-node und @swc/core dieselben Transforms bereit.

Das Projekt unterhält einen Nightly-Release-Kanal, der die neuesten ECMAScript-Vorschläge und TypeScript-Funktionen verfolgt. Stable-Releases werden häufig genug geschnitten, dass die meisten Benutzer ohne Bedenken aktualisieren können — Breaking Changes in SWC sind außerhalb von Major-Versionen selten.

Häufig gestellte Fragen

Verwandte Artikel

Weitere Berichterstattung zu ähnlichen Themen und Tags.

Oxc v0.126.0 : Turbopack Magic Comments im Parser, Breaking Changes beim Allocator
Rust

Oxc v0.126.0 : Turbopack Magic Comments im Parser, Breaking Changes beim Allocator

Oxc v0.126.0 bringt Parser-Unterstützung für Turbopack Magic Comments, eine breaking Umbenennung der Box- und Vec-Methoden im Allocator, neue NAPI-Transform-Optionen für Enum-Optimierung und weitere Performance-Verbesserungen.
Next.js v16.3.0-Canary: Prefetch-Kontrolle, Dedup-Verbesserungen und Neuer Dev-Overlay
Next.js

Next.js v16.3.0-Canary: Prefetch-Kontrolle, Dedup-Verbesserungen und Neuer Dev-Overlay

Next.js 16.3.0-canary bringt granulare Prefetch-Konfigurationsoptionen, besseres Deduplizieren für die 'use cache'-Direktive und einen redesiginierten Blocking-Route-Dev-Overlay — mit sccache jetzt über cargo-binstall.
QuickBEAM: Ein JavaScript-Runtime für die BEAM-VM — JavaScript trifft Erlangs OTP
JavaScript

QuickBEAM: Ein JavaScript-Runtime für die BEAM-VM — JavaScript trifft Erlangs OTP

QuickBEAM ist ein JavaScript-Runtime, der innerhalb der BEAM-VM läuft — derselben virtuellen Maschine, die Erlang und Elixir antreibt. Es integriert JavaScript in OTP-Supervision-Trees, ermöglicht JS den Aufruf von Elixir-Funktionen und OTP-Bibliotheken und wird mit einem eingebauten TypeScript-Toolkit ausgeliefert.

Kommentare

Anmelden Melden Sie sich an, um an der Diskussion teilzunehmen.

Noch keine Kommentare. Seien Sie der Erste, der seine Gedanken teilt.