Познакомьтесь со SwiftWasm
Группа смельчаков, стоящих за SwiftWasm, работает над добавлением WebAssembly в качестве цели компиляции для языка программирования Swift. Это незавершенная работа, поэтому она еще не полностью готова. Но мы уже можем выполнить код Swift во время выполнения Wasm (например, в браузере)!
Давайте настроим SwiftWasm на последней версии macOS. Тогда давайте попробуем создать наше первое приложение на основе Swift!
Установите Swift Language с поддержкой Wasm
Поддержки Wasm пока нет в официальном репозитории Swift. Следовательно, мы должны установить снимок языка с экспериментальной поддержкой.
Загрузите и установите самую последнюю версию SwiftWasm для macOS (на момент написания - 5.3) для macOS из проекта GitHub.
Чтобы использовать набор инструментов SwiftWasm из командной строки:
export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}"
И чтобы проверить, правильно ли он настроен:
swift --version
Тест SwiftWasm
Создайте файл HelloWorld Swift:
echo 'print("Hello, world!")' > hello.swift
Скомпилируйте исходный код Swift в байт-код Wasm:
swiftc -target wasm32-unknown-wasi hello.swift -o hello.wasm
Запустить вывод
Чтобы запустить код из командной строки, вы можете использовать wasmer
(среда выполнения Wasm).
Установите его:
curl https://get.wasmer.io -sSfL | sh
Выполните свой код Wasm:
wasmer hello.wasm
Сделайте быстрый пакет с SwiftPM
Мы можем использовать SwiftPM для создания пакета, который затем будет скомпилирован в Wasm.
Это просто. Давайте создадим пакет с именем testpack
, а затем просто скомпилируем и выполним его:
mkdir testpack && cd testpack
swift package init --type executable
Давайте построим:
swift build --triple wasm32-unknown-wasi
Выполните это:
wasmer .build/debug/testpack
Затем создайте веб-приложение с помощью SwiftWasm
Мы едва все настроили и выполнили всего лишь Hello World. Теперь давайте сделаем наше первое веб-приложение на основе ReactJS и SwiftUI с помощью Swift!