# Планировщик бюджета производительности и правил связывания WASM / WASI Preview 2 Component Model + JSPI

Планирует развертывание компонентов WebAssembly: граф связей в стиле wac с командами plug, поддержку WASI Preview 2 в пяти рантаймах, флаги JSPI и бюджеты размера / холодного старта / TTFB / памяти.

> Каноническая страница: https://elysiatools.com/ru/tools/wasm-wasi-component-model-jspi-wasi-copilot-perf-budget-and-link-rule-planner

- **Категория:** Validation

- **Ключевые слова:** wasm, wasi, модель компонентов, правила связывания, холодный старт, стриминг, бюджет, матрица рантаймов

## Обзор

Компоненты разбираются в граф связей socket/plug в стиле wac с топологической сортировкой, обнаружением циклов и генерацией команд wac plug / wac targets; матрица поддержки разделяет стабильный WASI 0.2 (wasi-cli, wasi:http/proxy) и предложения (keyvalue, config) по wasmtime, Wasmer, WasmEdge, WAMR и V8; размер, холодный старт p50/p95/p99, потоковый TTFB и память на инстанс моделируются против ваших бюджетов; JSPI помечен как нативный для V8, но не стандартизованный W3C.

## Входные данные

- **Манифест компонентов** (textarea): One per line: name, imports, exports, size_kb (use "-" for empty lists) e.g. api-gateway, wasi:http/incoming-handler@0.2.0 wasi:keyvalue/store@0.1.0, wasi:http/outgoing-handler@0.2.0, 850 auth-plug, -, wasi:http/incoming-handler@0.2.0, 220 kv-cache, -, wasi:keyvalue/store@0.1.0, 150
- **Целевые рантаймы** (select)
- **Требуемые WASI-интерфейсы** (select)
- **Использует JSPI (мост async↔sync)** (checkbox)
- **Потоковые ответы (wasi:http)** (checkbox)
- **Ожидаемые одновременные инстансы** (number)
- **Линейная память на инстанс (МБ)** (number)
- **Бюджет размера (КБ)** (number)
- **Бюджет холодного старта p99 (мс)** (number)
- **Бюджет TTFB (мс)** (number)

## Когда использовать

- При проектировании многокомпонентной архитектуры WebAssembly для вычисления порядка связывания и генерации команд `wac plug`.
- При выборе целевого рантайма (Wasmtime, Wasmer, WasmEdge, WAMR или V8) с учетом поддержки стабильных интерфейсов WASI 0.2 и черновых предложений.
- При расчете SLA по холодному старту (p50/p95/p99), сетевому TTFB и потреблению линейной памяти при параллельных инстансах.

## Как это работает

- Парсит манифест компонентов, извлекает импорты/экспорты и строит топологически упорядоченный граф зависимостей socket/plug с проверкой на циклические ссылки.
- Сверяет запрошенные интерфейсы (wasi:http, wasi-cli, wasi-keyvalue, wasi-config) с матрицей совместимости рантаймов и выявляет нестандартизированные функции вроде JSPI.
- Моделирует совокупный размер артефактов, задержку холодного старта (p50, p95, p99), влияние потоковой передачи на TTFB и общее потребление памяти инстансов.
- Формирует сводный HTML-отчет со статусом соблюдения бюджетов, матрицей поддержки и готовой последовательностью команд сборки `wac`.

## Сценарии использования

- Проектирование API-шлюзов на базе WASI 0.2: композиция входящего обработчика HTTP, плагина аутентификации и промежуточного кэша с проверкой TTFB.
- Оптимизация edge-сервисов и CLI-утилит на микробюджетных рантаймах WAMR для достижения субмиллисекундного холодного старта.
- Проверка совместимости серверных модулей Node.js/V8 при использовании JSPI для связывания синхронных WebAssembly-вызовов с асинхронным host I/O.

## Частые вопросы

### Как инструмент проверяет совместимость рантаймов с WASI Preview 2?

Он сопоставляет выбранные интерфейсы со статусом их реализации в Wasmtime, Wasmer, WasmEdge, WAMR и V8, разделяя стабильный WASI 0.2 и ранние предложения вроде wasi:keyvalue.

### Что означает предупреждение о JSPI?

Инструмент отмечает, что JavaScript Promise Integration нативно поддерживается в V8, но пока не является утвержденным финальным стандартом W3C.

### Как рассчитывается оценка TTFB при включенном стриминге?

При включенной потоковой передаче wasi:http TTFB оценивается по времени до первого чанка с учетом холодного старта, а без стриминга — по полному времени формирования буфера ответа.

### Каким образом обнаруживаются циклические зависимости компонентов?

Инструмент выполняет топологическую сортировку импортов и экспортов; при обнаружении замкнутых цепочек socket-to-plug выводится предупреждение об ошибке линковки.

### Какой формат ввода используется для манифеста компонентов?

Построчный текстовый формат: `имя, импорты, экспорты, размер_в_кб`, где списки интерфейсов разделяются пробелами, а для пустых значений ставится дефис `-`.

## Связанные инструменты

- [Проверка ссылок на муниципальные кодексы США (Municode) и детектор перенумерации](https://elysiatools.com/ru/tools/us-state-county-municode-code-of-ordinances-section-subsection-citation-link-checker): Разбирает муниципальные ссылки по пяти уровням (Title/Chapter/Article/Section/Subsection/Appendix), формирует юридические ссылки Bluebook (Правило 12.9.2), обнаруживает перенумерацию после недавних ордонансов (пропуски, дубликаты, нарушения порядка) и опционально проверяет ссылки в Municode / American Legal / eCode360.
- [Калькулятор контрольной суммы Mod-11](https://elysiatools.com/ru/tools/mod11-checksum): Проверяет или генерирует числа по алгоритму контрольной цифры Modulus-11 (ISO 7064) со схемами ISBN-10 (10..2), норвежского ID (3,7,6,1,8,9,4,5,2) и общей 2-7.
- [AI-генератор идей доменов](https://elysiatools.com/ru/tools/ai-domain-name-idea-generator): Введите ключевые слова бренда — ИИ сгенерирует до 10 идей доменов, отфильтровав занятые через DNS + RDAP. Для стартапов и разработчиков.
- [Объяснитель выражений Cron](https://elysiatools.com/ru/tools/cron-expression-explainer): Разбирает cron-выражение (5/6 полей или Quartz) в описание на естественном языке, разбивает по полям и выводит следующие N запусков в любой зоне IANA, с ИИ-объяснением
- [Коуч по cycle time и пропускной способности канбана](https://elysiatools.com/ru/tools/kanban-cycle-time-throughput-coach): Импортируйте метки создан→начат→завершён из CSV (Jira-стиль или простой) и получите метрики потока глазами agile-коуча: перцентили lead/cycle time, возраст WIP, пропускную способность по дням/неделям/месяцам, накопительную диаграмму потока и проверку закона Литтла.
- [Тестер пары ключей и инкапсуляции ML-KEM / Kyber](https://elysiatools.com/ru/tools/ml-kem-kyber-keypair-and-encapsulation-tester): Генерирует пары ключей ML-KEM-512/768/1024 (FIPS 203 / CRYSTALS-Kyber), инкапсулирует случайный общий секрет открытым ключом, декапсулирует закрытым и проверяет совпадение — с живой сверкой точных размеров всех трёх наборов параметров.
- [Генератор PKCE Code Verifier и Challenge](https://elysiatools.com/ru/tools/pkce-code-verifier-generator): Создание, проверка и верификация пар code_verifier / code_challenge PKCE (RFC 7636) для OAuth2 / OIDC. Три режима: (1) создать новую пару из криптостойких случайных байт (256/384/512/768 бит), (2) аудит имеющегося verifier по RFC — длина (43–128), набор \[A-Za-z0-9-._~\] и ≥256 бит энтропии, (3) проверить пару, пересчитав BASE64URL(SHA256(verifier)). При желании строит полный URL запроса авторизации и тело обмена токена. Дополняет универсальный nonce-generator (только выдаёт пару) аудитом соответствия RFC и проверкой пар.
- [Проверщик заголовков безопасности](https://elysiatools.com/ru/tools/security-headers-checker): Аудит HTTP-заголовков ответа на безопасность — анализирует необработанные заголовки, которые вы вставляете (без сети), и оценивает их по набору безопасных заголовков OWASP с проверками на уровне значения: HSTS max-age, CSP unsafe-inline/eval, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP и др. Возвращает оценку (от A+ до F) и находки по каждому заголовку с готовыми к копированию рекомендациями.

## Примеры

- [WebAssembly (WASM) Высокопроизводительные Вычисления](https://elysiatools.com/ru/samples/webassembly): WebAssembly для высокопроизводительных вычислений в браузере с производительностью близкой к нативной
- [Примеры Обработки Изображений Web Python](https://elysiatools.com/ru/samples/web-image-processing-python): Примеры обработки изображений Web Python используя PIL/Pillow включая чтение, сохранение, изменение размера и преобразование формата
- [Примеры Просмотрщика WASM](https://elysiatools.com/ru/samples/wasm-viewer-samples): Пример WASM для предварительного просмотра в браузере
- [Примеры Обработки Изображений Android Java](https://elysiatools.com/ru/samples/android-image-processing-java): Примеры обработки изображений Android Java включая чтение/сохранение, масштабирование и преобразование формата
