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
tokio
andmio
- Pipes to stream data to and from subprocesses
- Ability to yield CPU time without the bloat of
poll_oneoff
sched_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_status
sock_addr_local
sock_addr_peer
sock_open
sock_set_opt_flag
sock_get_opt_flag
sock_set_opt_time
sock_get_opt_time
sock_set_opt_size
sock_get_opt_size
sock_join_multicast_v4
sock_leave_multicast_v4
sock_join_multicast_v6
sock_leave_multicast_v6
sock_bind
sock_listen
sock_accept_v2
sock_connect
sock_recv_from
sock_send_to
sock_send_file
- Ability to perform DNS queries