Non-Invasive extensions added to WASI
WASIX extended Functions
- The ability to duplicate file handles
- polling functions that can be interrupted by libraries such as
tokioandmio - Pipes to stream data to and from subprocesses
- Ability to yield CPU time without the bloat of
poll_oneoffsched_yield
- Getting and setting the TTY properties
- Changing the current directory is now natively supported
- Signals can be blocked (needed by
libc) - Spawning threads as per the experimental threads spec
- Extra thread functions
- Operating system futex support used for multithread constructs
- Longjmp and setjmp used by
libc - Subprocess support
- Interface support
- All the missing socket functionality
sock_statussock_addr_localsock_addr_peersock_opensock_set_opt_flagsock_get_opt_flagsock_set_opt_timesock_get_opt_timesock_set_opt_sizesock_get_opt_sizesock_join_multicast_v4sock_leave_multicast_v4sock_join_multicast_v6sock_leave_multicast_v6sock_bindsock_listensock_accept_v2sock_connectsock_recv_fromsock_send_tosock_send_file
- Ability to perform DNS queries