1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-23 15:16:54 -05:00
denoland-deno/std/wasi
Casper Beyer 0ea1c6f5b0
feat(std/wasi): add return on exit option (#8605)
This adds an exitOnReturn option to context making it 
possible to unwind the stack on the exit(2) syscall 
instead of delegating to it directly.

Use case is being able to treat WASI execution contexts 
as children that don't kill the parent on exit.
2020-12-03 19:57:35 +01:00
..
testdata@8f49014513 test(std/wasi): re-enable clock_time_get tests (#8098) 2020-10-26 16:57:09 +01:00
README.md feat(std/wasi): add start method to Context (#8141) 2020-11-02 18:50:45 +01:00
snapshot_preview1.ts feat(std/wasi): add return on exit option (#8605) 2020-12-03 19:57:35 +01:00
snapshot_preview1_test.ts feat(std/wasi): add return on exit option (#8605) 2020-12-03 19:57:35 +01:00
snapshot_preview1_test_runner.ts feat(std/wasi): add start method to Context (#8141) 2020-11-02 18:50:45 +01:00

wasi

This module provides an implementation of the WebAssembly System Interface.

Supported Syscalls

wasi_snapshot_preview1

  • args_get
  • args_sizes_get
  • environ_get
  • environ_sizes_get
  • clock_res_get
  • clock_time_get
  • fd_advise
  • fd_allocate
  • fd_close
  • fd_datasync
  • fd_fdstat_get
  • fd_fdstat_set_flags
  • fd_fdstat_set_rights
  • fd_filestat_get
  • fd_filestat_set_size
  • fd_filestat_set_times
  • fd_pread
  • fd_prestat_get
  • fd_prestat_dir_name
  • fd_pwrite
  • fd_read
  • fd_readdir
  • fd_renumber
  • fd_seek
  • fd_sync
  • fd_tell
  • fd_write
  • path_create_directory
  • path_filestat_get
  • path_filestat_set_times
  • path_link
  • path_open
  • path_readlink
  • path_remove_directory
  • path_rename
  • path_symlink
  • path_unlink_file
  • poll_oneoff
  • proc_exit
  • proc_raise
  • sched_yield
  • random_get
  • sock_recv
  • sock_send
  • sock_shutdown

Usage

import Context from "https://deno.land/std@$STD_VERSION/wasi/snapshot_preview1.ts";

const context = new Context({
  args: Deno.args,
  env: Deno.env.toObject(),
});

const binary = await Deno.readFile("path/to/your/module.wasm");
const module = await WebAssembly.compile(binary);
const instance = await WebAssembly.instantiate(module, {
  "wasi_snapshot_preview1": context.exports,
});

context.start(instance);