Познакомьтесь со 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!