mirror of
https://github.com/denoland/deno.git
synced 2024-12-28 10:09:20 -05:00
be89bdfed7
This fast-forwards wasi-test-suite a couple of commits removed duplicate, or near duplicate tests with not much additional value. Other tests have been merged to reduce the number of modules to make tests topical to the syscall that is being tested. |
||
---|---|---|
.. | ||
testdata@ffbe85d231 | ||
README.md | ||
snapshot_preview1.ts | ||
snapshot_preview1_test.ts | ||
snapshot_preview1_test_runner.ts |
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,
});
const {
_start: start,
_initialize: initialize,
memory,
} = instance.exports;
context.memory = memory as WebAssembly.Memory;
if (start instanceof Function) {
start();
} else if (initialize instanceof Function) {
initialize();
} else {
throw new Error(
"No '_start' or '_initialize' entry point found in WebAssembly module, make sure to compile with wasm32-wasi as the target.",
);
}