Need help with deno-wasi?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

caspervonb
131 Stars 7 Forks MIT License 110 Commits 6 Opened issues

Description

A (WIP) WebAssembly System Interface implementation for Deno

Services available

!
?

Need anything else?

Contributors list

# 3,442
TypeScr...
Rust
Deno
wasi
110 commits

WebAssembly System Interface implementation for Deno

Note: This module has been merged into Deno, further development will take place in the Deno repository

This package provides an implementation of the WebAssembly System Interface for the Deno TypeScript runtime.

Status

This is a work in progress so if a function isn't implemented, hit refresh.

| Name | Status | Notes | |---------------------------|:-------:|----------------------------------------------------------------------------------------| |

args_get
| ✓ | | |
args_sizes_get
| ✓ | | |
environ_get
| ✓ | | |
environ_sizes_get
| ✓ | | |
clock_res_get
| ✓ | | |
clock_time_get
| ✓ | | |
fd_advise
| | This has no obvious path to implementation at this time. | |
fd_allocate
| | This has no obvious path to implementation at this time. | |
fd_close
| ✓ | | |
fd_datasync
| | This is blocking on getting fdatasync(2) implemented upstream in Deno. | |
fd_fdstat_get
| ✓ | This currently does not write flags and rights as we do not track those at the moment. | |
fd_fdstat_set_flags
| | This has no obvious path to implementation at this time. | |
fd_fdstat_set_rights
| | | |
fd_filestat_get
| | This is blocking on getting fstat implemented upstream in Deno. | |
fd_filestat_set_size
| | This is blocking on getting ftruncate implemented upstream in Deno. | |
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
| ✓ | This is blocking on getting fsync(2) implemented upstream in Deno. | |
fd_tell
| ✓ | | |
fd_write
| ✓ | | |
path_create_directory
| ✓ | | |
path_filestat_get
| ✓ | | |
path_filestat_set_times
| ✓ | | |
path_link
| ✓ | |7 |
path_open
| ✓ | Opening directories is not portable | |
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
| | |

Example

    instance.exports._start();
} else if (module.exports._initialize) {
import WASI from "https://deno.land/x/wasi/mod.ts";

const wasi = new WASI({ args: Deno.args, env: Deno.env, });

const binary = Deno.readAll("command.wasm"); const module = await WebAssembly.compile(binary); const instance = await WebAssembly.instantiate(module, { wasi_snapshot_preview1: wasi.exports, });

wasi.memory = module.exports.memory;

if (module.exports._start) { instance.exports._initialize(); } else { throw new Error("No entry point found"); }

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.