Swift w przeglądarce? MiniSwift zmienia wszystko

Swift w przeglądarce? MiniSwift zmienia wszystko

Lip 06, 2026 webassembly swift web-development compilers cross-platform programming-languages browser-tech

MiniSwift: Kompilator Swifta w przeglądarce, który zmienia reguły gry

Przyznaję się bez bicia: kiedy myślę o tworzeniu aplikacji w Swifcie, pierwsze co przychodzi mi do głowy to Xcode, macOS i cały ekosystem Apple. Ale co, jeśli powiem ci, że ktoś właśnie zbudował kompletny kompilator Swifta — z lexerem, parserem, sprawdzaniem typów, optymalizatorem i wszystkim innym — który działa w jednej zakładce przeglądarki?

Tak właśnie wygląda MiniSwift i muszę przyznać, że to jedna z najbardziej imponujących rzeczy, jakie widziałem w tym roku.

Co tak naprawdę się dzieje

Zespół stojący za MiniSwift napisał około 71 000 linijek czystego kodu w C, który implementuje pełny potok kompilatora Swifta. Żadnego LLVM. Żadnego Clang. Żadnego binaryen. Tylko C, kompilujący kod Swift bezpośrednio do WebAssembly.

Zastanów się nad tym przez chwilę. Piszesz kod w Swifcie — włącznie ze SwiftUI z @State, NavigationStack, Toggle i całą deklaratywną magią interfejsu użytkownika — a ich kompilator działający w przeglądarce tokenizuje go, parsuje, sprawdza typy i zamienia na własną reprezentację pośrednią UIIR (UI Intermediate Representation). Następnie renderer canvas rysuje to na wirtualnej ramce iPhone'a.

Kiedy klikasz przycisk, @State się zmienia, a ich silnik różnicowy oparte na tożsamości odbudowuje tylko dotkniętą gałąź drzewa. Żadnego iframe. Żadnego JavaScriptowego adaptera. Żadnego natywnego środowiska wykonawczego. Po prostu Swift → kompilator C → WebAssembly → piksele na canvas.

Dlaczego to jest ważne dla developerów

Przez lata słyszeliśmy, że web jest uniwersalną platformą. Ale budowanie doświadczeń na poziomie natywnym często oznaczało porzucenie technologii webowych lub utrzymywanie osobnych baz kodu dla różnych platform. MiniSwift sugeruje inną przyszłość — taką, gdzie piszesz kod Swift raz i kompilujesz go do uruchomienia wszędzie tam, gdzie może dotrzeć WebAssembly.

Implikacje są znaczące:

Prawdziwy potencjał cross-platformowy: Ten sam kod Swift, który wysyłasz na iPhone'a, działa w zakładce przeglądarki bez żadnych modyfikacji. To nie jest transpilacja ani abstrakcja — to ten sam potok, tylko celujący w inny wynik.

Bez instalacji: To pełne środowisko IDE działające w przeglądarce. Możesz wysłać link, a ktoś w sekundach może pisać i podglądać kod SwiftUI.

Programowanie shaderów w przeglądarce: Projekt zawiera również libMetal, który kompiluje Metal Shading Language (MSL) do WebGPU Shading Language (WGSL). Edytuj shader, ruszaj myszką, obserwuj reakcję. Wszystko w C, wszystko od zera.

Osiągnięcie techniczne

Pozwól, że rozłożę na czynniki pierwsze, co tu tak naprawdę działa:

  • 71 000 linijek kodu w C implementującego kompilator, bibliotekę standardową, Foundation, SwiftUI i wsparcie dla Metal
  • 52 widoki SwiftUI obejmujące stacki, kształty, ścieżki, canvas i mapy
  • 75 modyfikatorów pokrywających układ, styl, gesty, sheeti i alerty
  • 0 zewnętrznych zależności — żadnego npm, żadnego LLVM, żadnego Clang

Sam potok kompilatora jest elegancki: .swift → Lexer → Parser → Sema → IR Gen → SSA → Optimizer → WebAssembly → .wasm

Zbudowali również funkcjonalność Foundation — arytmetykę Date/Calendar, obsługę URL, kodowanie/dekodowanie JSON, generowanie UUID, UserDefaults i wsparcie dla Unicode 17.0 — wszystko dostępne przez mostek JavaScript.

Filozofia, którą warto zauważyć

Zespół MiniSwift porusza punkt, który jest dziś coraz rzadszy w nowoczesnym tworzeniu oprogramowania: zbudowali wszystko sami. Żadnego React. Żadnych Web Components. Żadnego autorskiego runtime'u. 751 testów z wynikiem 100% i polityka zerowej regresji.

To inżynieria oprogramowania w swojej najbardziej podstawowej formie — zrozumienie problemu na tyle głęboko, by zaimplementować go od pierwszych zasad, zamiast stawiać zależności na zależnościach.

Co to oznacza dla branży

Niezależnie od tego, czy MiniSwift stanie się mainstreamowym narzędziem, czy pozostanie pokazem technicznym, demonstruje coś ważnego: granice tego, co przeglądarki mogą zrobić, wciąż się poszerzają. WebAssembly to już nie tylko portowanie starych baz kodu C++ — staje się legitymacyjnym celem kompilacji dla nowoczesnych, ekspresyjnych języków.

Dla startupów i developerów otwiera to pytania o decyzje dotyczące toolchainu. Jeśli możesz napisać Swift raz i wdrożyć wszędzie, jak to zmienia twoją architekturę? Jak wpływa na rekrutację, onboarding i dzielenie kodu między zespołami webowymi i mobilnymi?

Żyjemy w erze, gdzie możliwości przeglądarek ewoluują szybciej, niż wielu developerów zdaje sobie sprawę. Projekty takie jak MiniSwift to nie tylko ciekawostki techniczne — to podgląd tego, dokąd zmierza platforma webowa.

Pytanie nie brzmi, czy tego rodzaju technologia będzie miała znaczenie. Pytanie brzmi: czy będziesz gotowy, kiedy nadejdzie?


Co myślisz o natywnej kompilacji w przeglądarce? Czy to przyszłość cross-platform developmentu, czy fascynujący eksperyment? Podziel się swoimi przemyśleniami poniżej.

Read in other languages:

PT NB NL HU IT FR ES DE DA ZH-HANS EN