Если вы еще не слышали о WebAssembly (Wasm) — это технология, позволяющая запускать код на любых платформах: в браузере, на сервере, в мобильных приложениях. Think of it as universal bytecode для веба и не только.
🤔 Зачем Wasm Swift-разработчику?
🔸 Кроссплатформенность: один код для iOS, Android, Web и серверов.
🔸 Производительность: скорость выполнения, близкая к нативному коду.
🔸 Безопасность: песочница и изоляция по умолчанию.
🔸 Интероперабельность: работа с JavaScript, C++, Rust.
Как и писал ранее про добавление поддержки Wasm в Swift 6.2 — за лето, с момента анонса, экосистема сделала огромный рывок.
⚙️ Embedded Concurrency:
Работает в двух средах:
# CLI-приложения
swift run --target wasm32-unknown-wasip1
# Браузер через JavaScriptKit
import JavaScriptEventLoop // Для асинхронности в браузере
🗃 CI и пакеты:
Автосборка для основных пакетов Swift:
🔸 swift-algorithms
🔸 swift-collections
🔸 swift-nio
🔸 swift-foundation (теперь входит в SDK)
✅ Вот что уже работает сегодня:
🔹 Сборка комплексных проектов:
swift build --target wasm32-unknown-wasip1
🔹 Использование Foundation (кроме Embedded Swift):
import Foundation
// Работает с URLSession, JSONDecoder и т.д.
🔹 Интеграция с JavaScript:
// Через JavaScriptKit
let result = JSObject.global.document.createElement("div")
❌ Что еще в работе:
🔸 Полная поддержка Embedded Swift Concurrency.
🔸 WASI Preview 2 (wasip2).
🔸 Стабилизация Foundation для Embedded.
💡 Вывод:
Wasm в Swift переходит из стадии эксперимента в production-ready. Уже сейчас можно собирать реальные проекты — от CLI-утилит до браузерных приложений. Главное преимущество — единая кодобаза для разных платформ.
➡️ Подписаться на канал
Мобильный трудоголик