Топаз использует WebAssembly в продуктах с различными владельцами и границами доверия. Сначала выберите продукт, затем команду.
1. Песочница песочница: первый эксперимент в браузере
Песочница на сайте позволяет редактировать, проверять и запускать небольшую программу на Топазе без установки 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. Если управляемый каталог вывода изменился, сохраните его и соберите продукт в новом пустом каталоге.