Repolode
bytecodealliance

bytecodealliance/wasmtime

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

Звёзды
18,744
Форки
1,879
Открытые issues
888
Последний коммит
4 часа назад

Что это?

Wasmtime — автономная среда выполнения WebAssembly, переносимого бинарного формата для кода, который работает в браузерах и за их пределами. Компоненты WebAssembly можно запускать из командной строки с помощью CLI wasmtime или встраивать в приложения через crate для Rust и биндинги для C, C++, Python, .NET, Go и Ruby.

Wasmtime компилирует модули с помощью генератора кода Cranelift — при запуске или заранее. В проекте доступны параметры настройки использования CPU и памяти, а также API WASI, позволяющие гостевым программам взаимодействовать с окружением хоста, например с файлами и системными ресурсами. Согласно проекту, Wasmtime проходит официальный набор тестов WebAssembly и реализует официальный C API wasm.

Wasmtime развивается под эгидой Bytecode Alliance и написан на Rust.

Ключевые возможности

  • 01Компилирует WebAssembly с помощью генератора кода Cranelift — при запуске или заранее.
  • 02Предоставляет API WASI, с помощью которых гостевые программы могут обращаться к ресурсам хоста.
  • 03Позволяет настраивать потребление CPU и памяти.
  • 04Включает CLI для прямого запуска компонентов WebAssembly.
  • 05Предоставляет биндинги для встраивания в приложения на Rust, C, C++, Python, .NET, Go и Ruby.

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

  • Запуск компонентов WebAssembly из командной строки.
  • Встраивание изолированной среды выполнения WebAssembly в приложение на Rust или C.
  • Выполнение недоверенного кода плагинов с доступом к хосту через WASI.

Быстрый старт

  1. 1

    Установите Wasmtime CLI с помощью официального скрипта установки или со страницы релизов

  2. 2

    Добавьте цель WebAssembly WASI в Rust

    rustup target add wasm32-wasip2
  3. 3

    Скомпилируйте программу hello-world на Rust в компонент WebAssembly

    rustc hello.rs --target wasm32-wasip2
  4. 4

    Запустите скомпилированный компонент с помощью Wasmtime

    wasmtime hello.wasm

Что важно знать

  • Однострочный скрипт установки документирован только для Linux и macOS; пользователям Windows необходимо воспользоваться страницей релизов.

Темы

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

Что такое wasmtime?
Автономная среда выполнения WebAssembly на базе генератора кода Cranelift, с поддержкой WASI и встраиванием в приложения на разных языках. Wasmtime — автономная среда выполнения WebAssembly, переносимого бинарного формата для кода, который работает в браузерах и за их пределами. Компоненты WebAssembly можно запускать из командной строки с помощью CLI wasmtime или встраивать в приложения через crate для Rust и биндинги для C, C++, Python, .NET, Go и Ruby.
wasmtime можно использовать бесплатно? Какая у него лицензия?
wasmtime распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
wasmtime всё ещё поддерживается?
Активно поддерживается. Последний коммит в wasmtime — 21 окт. 2026 г..
Для чего можно использовать wasmtime?
Запуск компонентов WebAssembly из командной строки. Встраивание изолированной среды выполнения WebAssembly в приложение на Rust или C. Выполнение недоверенного кода плагинов с доступом к хосту через WASI.
Как установить wasmtime?
Установите Wasmtime CLI с помощью официального скрипта установки или со страницы релизов Добавьте цель WebAssembly WASI в Rust: rustup target add wasm32-wasip2 Скомпилируйте программу hello-world на Rust в компонент WebAssembly: rustc hello.rs --target wasm32-wasip2 Запустите скомпилированный компонент с помощью Wasmtime: wasmtime hello.wasm
Где скачать wasmtime?
Исходный код и инструкции по установке — на GitHub: https://github.com/bytecodealliance/wasmtime

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты