Топаз использует WebAssembly в продуктах с разными владельцами и границами доверия. Сначала выберите продукт, затем команду.
1. Песочница Playground: первый эксперимент в браузере
Песочница сайта позволяет редактировать, проверять и запускать небольшую программу на Топазе без установки CLI. Браузер загружает WebAssembly компилятора и интерпретатора внутрь Worker. Это подтверждает интерактивный эксперимент с исходником, а не развёрнутое приложение или неограниченный доступ к браузеру.
Чтобы провести тот же эксперимент с установленным CLI, начните с раздела Первая программа.
2. Raw Web: существующая среда вызывает Топаз
Выбирайте Raw Web, если существующая среда модулей ES на JavaScript владеет интерфейсом и вызывает выбранные экспортированные функции Топаза.
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.
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, если Топаз владеет моделью, сообщениями, обновлением,
представлением и объявленными полномочиями браузера.
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. Если управляемый каталог вывода изменился, сохраните его и соберите продукт в новом пустом каталоге.