Pular para o conteúdo

Funcoes Host

Modulos WASM acessam capacidades do runtime atraves de imports de funcoes host. Cada import e declarado explicitamente por entrada na lista imports.

ImportDescricao
wasi:cliAmbiente, exit, stdin/stdout/stderr, terminal
wasi:ioStreams, tratamento de erros, polling
wasi:clocksRelogio de parede e relogio monotonico
wasi:filesystemAcesso ao sistema de arquivos atraves de diretorios montados
wasi:randomNumeros aleatorios criptograficamente seguros
wasi:socketsRede TCP/UDP e resolucao DNS
wasi:httpRequisicoes HTTP de saida

Habilite imports na configuracao da sua entrada:

- 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

Declare apenas os imports que seu modulo realmente precisa.

Cada import wasi:* habilita um grupo de interfaces WASI Preview 2 relacionadas.

Interfaces: wasi:clocks/wall-clock, wasi:clocks/monotonic-clock

Relogio de parede e relogio monotonico para operacoes de tempo. O relogio monotonico se integra com o dispatcher do Wippy para sleep assincrono.

Interfaces: wasi:io/error, wasi:io/streams, wasi:io/poll

Operacoes de leitura/escrita de streams e polling assincrono. A interface poll permite yield cooperativo atraves do dispatcher.

Interfaces: wasi:cli/environment, wasi:cli/exit, wasi:cli/stdin, wasi:cli/stdout, wasi:cli/stderr

Acesso a variaveis de ambiente, codigos de saida de processo e streams de I/O padrao. Variaveis de ambiente sao mapeadas a partir do registro de ambiente do Wippy atraves da configuracao WASI.

Interfaces: wasi:filesystem/types, wasi:filesystem/preopens

Acesso ao sistema de arquivos atraves de diretorios montados. Montagens sao configuradas por entrada e mapeiam entradas de sistema de arquivos do Wippy para caminhos do guest.

wasi:
mounts:
- fs: myns:data
guest: /data
read_only: true

Interfaces: wasi:random/random, wasi:random/insecure, wasi:random/insecure-seed

Geracao de numeros aleatorios criptograficamente seguros e inseguros.

Interfaces: wasi:sockets/network, wasi:sockets/instance-network, wasi:sockets/ip-name-lookup, wasi:sockets/tcp, wasi:sockets/tcp-create-socket, wasi:sockets/udp

Rede TCP e UDP com resolucao DNS. Operacoes de socket se integram com o dispatcher para I/O assincrono.

Interfaces: wasi:http/types, wasi:http/outgoing-handler

Requisicoes HTTP de saida de dentro de modulos WASM. Suporta tipos de requisicao/resposta definidos pela especificacao WASI HTTP.