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.
Tipos de Import
| Import | Description |
|---|---|
wasi:cli |
Entorno, exit, stdin/stdout/stderr, terminal |
wasi:io |
Streams, manejo de errores, polling |
wasi:clocks |
Reloj de pared y reloj monotonico |
wasi:filesystem |
Acceso al sistema de archivos a traves de directorios montados |
wasi:random |
Numeros aleatorios criptograficamente seguros |
wasi:sockets |
Redes TCP/UDP y resolucion DNS |
wasi:http |
Solicitudes 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.
Imports WASI
Cada import wasi:* habilita un grupo de interfaces WASI Preview 2 relacionadas.
wasi:clocks
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.
wasi:io
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.
wasi:cli
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.
wasi:filesystem
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
wasi:random
Interfaces: wasi:random/random, wasi:random/insecure, wasi:random/insecure-seed
Generacion de numeros aleatorios criptograficamente seguros e inseguros.
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
Redes TCP y UDP con resolucion DNS. Las operaciones de sockets se integran con el dispatcher para E/S asincrona.
wasi:http
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.
Ver Tambien
- Descripcion general - Descripcion general del runtime WebAssembly
- Funciones - Configuracion de funciones WASM
- Procesos - Ejecucion de WASM como procesos