Ir al contenido

Funciones Host

Los modulos WASM acceden a las capacidades del runtime a traves de imports de funciones host. Cada import se declara explicitamente por entrada en la lista imports.

ImportDescription
wasi:cliEntorno, exit, stdin/stdout/stderr, terminal
wasi:ioStreams, manejo de errores, polling
wasi:clocksReloj de pared y reloj monotonico
wasi:filesystemAcceso al sistema de archivos a traves de directorios montados
wasi:randomNumeros aleatorios criptograficamente seguros
wasi:socketsRedes TCP/UDP y resolucion DNS
wasi:httpSolicitudes HTTP salientes del cliente

Habilita imports en la configuracion de tu 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

Solo declara los imports que tu modulo realmente necesita.

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

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

Reloj de pared y reloj monotonico para operaciones de tiempo. El reloj monotonico se integra con el dispatcher de Wippy para sleep asincrono.

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

Operaciones de lectura/escritura de streams y polling asincrono. La interfaz poll permite la cesion cooperativa a traves del dispatcher.

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

Acceso a variables de entorno, codigos de salida del proceso y flujos de E/S estandar. Las variables de entorno se mapean desde el registro de entorno de Wippy a traves de la configuracion WASI.

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

Acceso al sistema de archivos a traves de directorios montados. Los montajes se configuran por entrada y mapean entradas del sistema de archivos de Wippy a rutas del guest.

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

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

Generacion 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

Redes TCP y UDP con resolucion DNS. Las operaciones de sockets se integran con el dispatcher para E/S asincrona.

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

Solicitudes HTTP salientes del cliente desde dentro de modulos WASM. Soporta los tipos de solicitud/respuesta definidos por la especificacion WASI HTTP.