Если вы еще не слышали о
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-утилит до браузерных приложений. Главное преимущество - единая кодобаза для разных платформ.