Spec-Zone.ru › Kotlin 2

Kotlin/Wasm

Kotlin/Wasm позволяет компилировать код Kotlin в формат WebAssembly (Wasm). С помощью Kotlin/Wasm можно создавать приложения для разных сред и устройств, которые поддерживают Wasm и соответствуют требованиям Kotlin.

Wasm — это двоичный формат инструкций для виртуальной машины на основе стека. Этот формат не зависит от платформы, поскольку выполняется на собственной виртуальной машине. Wasm предоставляет Kotlin и другим языкам цель компиляции.

Kotlin/Wasm можно использовать в разных целевых средах, например в браузерах для разработки веб-приложений на основе Compose Multiplatform, а также вне браузера — в автономных виртуальных машинах Wasm. В случае запуска вне браузера WebAssembly System Interface (WASI) предоставляет доступ к API платформы, которые также можно использовать.

Чтобы запускать приложения, созданные с помощью Kotlin/Wasm, в браузере, пользователям понадобится версия браузера, поддерживающая предложения WebAssembly по сборке мусора и обработке устаревших исключений. Информацию о поддержке браузерами см. в дорожной карте WebAssembly.

Kotlin/Wasm и Compose Multiplatform

С помощью Kotlin можно создавать приложения и повторно использовать пользовательские интерфейсы (UI) для мобильных устройств и настольных компьютеров в веб-проектах с помощью Compose Multiplatform и Kotlin/Wasm.

Compose Multiplatform — это декларативный фреймворк на основе Kotlin и Jetpack Compose, позволяющий один раз реализовать UI и использовать его на всех целевых платформах.

Для веб-платформ Compose Multiplatform использует Kotlin/Wasm в качестве цели компиляции. Приложения, созданные с помощью Kotlin/Wasm и Compose Multiplatform, используют цель wasm-js и запускаются в браузерах.

Кроме того, в Kotlin/Wasm сразу доступны самые популярные библиотеки Kotlin. Как и в других проектах Kotlin и Multiplatform, зависимости можно указывать в скрипте сборки. Подробнее см. в разделе Добавление зависимостей от библиотек для Multiplatform.

Хотите попробовать самостоятельно?

Начало работы с Kotlin/Wasm

Kotlin/Wasm и WASI

Для серверных приложений Kotlin/Wasm использует WebAssembly System Interface (WASI). Приложения, созданные с помощью Kotlin/Wasm и WASI, используют цель Wasm-WASI, которая позволяет вызывать API WASI и запускать приложения вне браузера.

Kotlin/Wasm использует WASI для абстрагирования от деталей конкретной платформы, благодаря чему один и тот же код Kotlin работает на разных платформах. Это расширяет возможности Kotlin/Wasm за пределами веб-приложений, избавляя от необходимости настраивать работу для каждой среды выполнения.

WASI предоставляет безопасный стандартизированный интерфейс для запуска приложений Kotlin, скомпилированных в WebAssembly, в разных средах.

Чтобы увидеть Kotlin/Wasm и WASI в действии, ознакомьтесь с руководством Начало работы с Kotlin/Wasm и WASI.

Модель компонентов WebAssembly

WASI 0.2 построена на основе модели компонентов WebAssembly, которая определяет способ создания компонентов из модулей Wasm с помощью стандартизированных интерфейсов и типов. Эта модель позволяет определять языконезависимые компоненты в приложениях и библиотеках. Также можно объединять модули Wasm и существующие компоненты в новые компоненты.

Чтобы узнать, какие возможности открывают модель компонентов WebAssembly и Kotlin/Wasm, посмотрите демонстрацию простого сервера, созданного с помощью wasi:http.

Kotlin/Wasm with WebAssembly Component Model

Производительность Kotlin/Wasm

Хотя Kotlin/Wasm всё ещё находится на этапе бета-тестирования, Compose Multiplatform, работающий на Kotlin/Wasm, уже демонстрирует обнадёживающие показатели производительности. Скорость его выполнения выше, чем у JavaScript, и приближается к скорости JVM:

Kotlin/Wasm performance

Мы регулярно запускаем тесты производительности Kotlin/Wasm. Приведённые результаты получены в ходе тестирования в недавней версии Google Chrome.

Поддержка API браузера

Стандартная библиотека Kotlin/Wasm содержит объявления для API браузера, включая DOM API. С их помощью можно напрямую использовать API Kotlin для доступа к различным функциям браузера. Например, в приложениях Kotlin/Wasm можно работать с элементами DOM или использовать API fetch, не определяя эти объявления с нуля. Подробнее см. в нашем примере браузерного приложения Kotlin/Wasm.

Объявления для поддержки API браузера определяются с помощью возможностей взаимодействия с JavaScript. Эти же возможности можно использовать для определения собственных объявлений. Кроме того, взаимодействие Kotlin/Wasm с JavaScript позволяет использовать код Kotlin из JavaScript. Подробнее см. в разделе Использование кода Kotlin в JavaScript.

Оставить отзыв

Отзывы о Kotlin/Wasm

  • Slack Slack: Получите приглашение в Slack и оставьте отзыв напрямую разработчикам в канале #webassembly.

  • Сообщайте о проблемах в YouTrack.

Отзывы о Compose Multiplatform

  • Slack Slack: оставьте отзыв в общедоступном канале #compose-web.

  • Сообщайте о проблемах на GitHub.

Подробнее

  • Узнайте больше о Kotlin/Wasm в этом плейлисте на YouTube.

  • Посмотрите примеры Kotlin/Wasm в нашем репозитории на GitHub.

1 сентября 2026 г.
Создание веб-приложения с React и Kotlin/JS — руководствоНачало работы с Kotlin/Wasm и Compose Multiplatform

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/wasm-overview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API