Хост-функции
Хост-функции
Заголовок раздела «Хост-функции»WASM-модули получают доступ к возможностям среды выполнения через импорт хост-функций. Каждый импорт объявляется явно для каждой записи в списке imports.
Типы импортов
Заголовок раздела «Типы импортов»| Import | Описание |
|---|---|
wasi:cli | Окружение, выход, stdin/stdout/stderr, терминал |
wasi:io | Потоки, обработка ошибок, опрос (polling) |
wasi:clocks | Системные и монотонные часы |
wasi:filesystem | Доступ к файловой системе через смонтированные директории |
wasi:random | Криптографически стойкие случайные числа |
wasi:sockets | TCP/UDP-сети и DNS-разрешение |
wasi:http | Исходящие HTTP-запросы клиента |
Включите импорты в конфигурации записи:
- name: my_function kind: function.wasm fs: myns:assets path: /module.wasm hash: sha256:... method: run imports: - wasi:cli - wasi:io - wasi:clocks - wasi:filesystem pool: type: inlineОбъявляйте только те импорты, которые действительно нужны вашему модулю.
Импорты WASI
Заголовок раздела «Импорты WASI»Каждый импорт wasi:* включает группу связанных интерфейсов WASI Preview 2.
wasi:clocks
Заголовок раздела «wasi:clocks»Interfaces: wasi:clocks/wall-clock, wasi:clocks/monotonic-clock
Системные и монотонные часы для операций со временем. Монотонные часы интегрируются с диспетчером Wippy для асинхронного sleep.
wasi:io
Заголовок раздела «wasi:io»Interfaces: wasi:io/error, wasi:io/streams, wasi:io/poll
Операции чтения/записи потоков и асинхронный опрос (polling). Интерфейс poll обеспечивает кооперативную передачу управления через диспетчер.
wasi:cli
Заголовок раздела «wasi:cli»Interfaces: wasi:cli/environment, wasi:cli/exit, wasi:cli/stdin, wasi:cli/stdout, wasi:cli/stderr
Доступ к переменным окружения, кодам выхода процесса и стандартным потокам ввода/вывода. Переменные окружения привязываются из реестра окружения Wippy через конфигурацию WASI.
wasi:filesystem
Заголовок раздела «wasi:filesystem»Interfaces: wasi:filesystem/types, wasi:filesystem/preopens
Доступ к файловой системе через смонтированные директории. Точки монтирования настраиваются для каждой записи и связывают записи файловой системы Wippy с путями в госте.
wasi: mounts: - fs: myns:data guest: /data read_only: truewasi:random
Заголовок раздела «wasi:random»Interfaces: wasi:random/random, wasi:random/insecure, wasi:random/insecure-seed
Криптографически стойкая и нестойкая генерация случайных чисел.
wasi:sockets
Заголовок раздела «wasi:sockets»Interfaces: wasi:sockets/network, wasi:sockets/instance-network, wasi:sockets/ip-name-lookup, wasi:sockets/tcp, wasi:sockets/tcp-create-socket, wasi:sockets/udp
TCP- и UDP-сети с DNS-разрешением. Операции с сокетами интегрируются с диспетчером для асинхронного I/O.
wasi:http
Заголовок раздела «wasi:http»Interfaces: wasi:http/types, wasi:http/outgoing-handler
Исходящие HTTP-запросы клиента из WASM-модулей. Поддерживает типы запросов/ответов, определенные спецификацией WASI HTTP.