Сборка и поставка

WASM и песочница

Выберите между песочницей, Raw Web, Worker и управляемым Web Application.

Топаз использует WebAssembly в продуктах с различными владельцами и границами доверия. Сначала выберите продукт, затем команду.

1. Песочница песочница: первый эксперимент в браузере

Песочница на сайте позволяет редактировать, проверять и запускать небольшую программу на Топазе без установки CLI. Браузер загружает WebAssembly компилятора и интерпретатора внутрь Worker. Это обеспечивает интерактивный эксперимент с исходным кодом, а не развёрнутое приложение или неограниченный доступ к браузеру.

Чтобы провести тот же эксперимент с установленным CLI, начните с раздела Первая программа.

2. Raw Web: существующая среда вызывает Топаз

Выбирайте Raw Web, если существующая среда ES-модулей на JavaScript управляет интерфейсом и вызывает выбранные экспортированные функции Топаза.

BASH
topaz build --target web main.tpz --release --out-dir web-product

Продукт содержит topaz-web.js, topaz-web.d.ts, topaz-web.wasm и общие файлы артефактов. Импортируйте instantiateTopaz из созданного модуля и раздавайте каталог по HTTP. Среда должна соблюдать созданный типизированный ABI.

3. Worker: тот же ABI вне главного потока

Выбирайте Worker, если существующей среде также нужен созданный транспорт запросов и ответов вокруг Raw Web.

BASH
topaz build main.tpz --target web-worker --release --out-dir worker-product

В продукт добавляются topaz-web-worker.js и topaz-web-worker-client.js. Это не создаёт интерфейс и не даёт новых полномочий. Среда JavaScript по-прежнему управляет обоими.

4. Управляемое Web Application: интерфейс принадлежит Топазу

Выбирайте web-app, если Топаз управляет моделью, сообщениями, обновлениями, представлением и объявленными полномочиями браузера.

BASH
topaz init --target web-app --root hello-web
topaz lock --root hello-web
topaz check --root hello-web --locked
topaz test hello-web/tests/app.tpz --root hello-web --locked
topaz dev --root hello-web --port 8000
topaz build --root hello-web --locked --release --out-dir web-app-product

Эта пакетная цель создаёт полный статический продукт с index.html, проверенной средой topaz-app.js, файлами Raw Web, метаданными полномочий и объявленными стилями или ресурсами. topaz dev работает только на адресе обратной связи и не является производственным сервером.

Требования и восстановление

Для сборок Raw Web, Worker и управляемого веб-приложения нужен Rust с целевой платформой wasm32-unknown-unknown. Готовому браузерному продукту не нужны CLI Топаза и Rust. Раздавайте его по HTTP. Прямая загрузка модулей ES и WASM через file:// не является поддерживаемым путём.

Если браузер сообщает о несовпадении среды и файлов поддержки выполнения, разверните полный каталог одной сборки вместо смешивания старого JavaScript с новым WASM. Если управляемый каталог вывода изменился, сохраните его и соберите продукт в новом пустом каталоге.

Связанная документация