Как обслуживать несколько HTML страниц, используя Wasm с Rust? - PullRequest
2 голосов
/ 29 марта 2020

Я пытаюсь создать веб-приложение, выполняющее wasm на стороне клиента, и мне интересно, что было бы хорошим способом обслуживания нескольких страниц. Моя главная проблема - производительность, потому что я хотел бы разбить приложение на контекстные куски, а не на одну страницу со всем содержимым.

Я использую Rust с рамкой Yew для на стороне клиента, и до сих пор я использовал yew_router для обработки различных маршрутов на стороне клиента, но все они работают с одной страницы HTML и модуля Wasm. Теперь я хотел бы иметь возможность обслуживать разные HTML страницы с отдельными модулями Wasm, и я не уверен, как это реализовать. Действительно ли мне нужно написать отдельный ящик для каждой страницы и скомпилировать их для отдельных модулей Wasm, чтобы я мог обслуживать их по отдельности? Или есть какой-то способ, которым я могу собрать один ржавый ящик для нескольких модулей Wasm?

Моя текущая структура проекта выглядит следующим образом:

.
├── Cargo.toml // workspace manifest
├── client
│   ├── Cargo.toml
│   ├── favicon.ico
│   ├── index.html
│   ├── main.js
│   ├── Makefile
│   ├── pkg // built using wasm-pack and rollup
│   │  ├── bundle.js
│   │  ├── client_bg.d.ts
│   │  ├── client_bg.wasm
│   │  ├── client.d.ts
│   │  ├── client.js
│   │  ├── package.json
│   │  └── snippets
│   ├── src
│   ├── statics
│   ├── styles
│   └── vendor
├── server
│   ├── Cargo.toml
│   └── src
└── ... other crates

, и я запускаю сервер внутри client/, где он index.html отвечает на все входящие GET запросы. index.html ссылается на bundle.js in pkg/, который устанавливает модуль client_bg.wasm.

Теперь я в основном хочу сделать это с другой страницей HTML, с другим модулем Wasm, предпочтительно из то же самое приложение Yew в client ящике.

Спасибо

1 Ответ

2 голосов
/ 30 марта 2020

В настоящее время невозможно создать два файла wasm из одного ящика. Решение состоит в том, чтобы использовать один файл create per wasm, а затем позволить другой системе сборки выводить выходные данные в правильные места.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...