-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jco transpile: implementation of wasi-sockets for Node.js #154
Comments
Note 1: Node.js does not expose libuv's setsocketopt() and getsocketopt(). We either submit a PR to Node.js or use 3rd party packages (ffi-napi and ref-napi), to expose socket libuv's bindings. Note 2: what should be the exact behavior of client.stream(None)? |
Notes from our last call on 27 Nov:
@pchickey @guybedford @yoshuawuyts let's keep this issue open to track futures PRs. |
Following our call from last week, here is a comparison of the Node.js socket APIs from As you can see from the table below, there are some APIs that are not exposed in After giving this some thought, and in order to meet our deadline, I think we should keep the current wasi-sockets implementation, based on TCP
UDP
|
I think As such I see no reason not to use the |
Just to update the report here, on my latest test run, I'm still getting the following test cases failing:
Any updates very much welcome if I'm missing something. |
I've resolved the three deny tests in #310 - |
Tasks
instance-network.instance-network
ip-name-lookup.resolve-addresses
ip-name-lookup.resolve-next-address
ip-name-lookup.drop-resolve-address-stream
ip-name-lookup.subscribe
tcp-create-socket.create-tcp-socket
tcp.start-bind
tcp.finish-bind
tcp.start-connect
tcp.finish-connect
tcp.start-listen
tcp.finish-listen
tcp.accept
tcp.local-address
tcp.remote-address
tcp.is-listening
tcp.address-family
tcp.ipv6-only
tcp.set-ipv6-only
tcp.set-listen-backlog-size
tcp.keep-alive-enabled
tcp.set-keep-alive-enabled
tcp.keep-alive-idle-time
tcp.set-keep-alive-idle-time
tcp.keep-alive-interval
tcp.set-keep-alive-interval
tcp.keep-alive-count
tcp.set-keep-alive-count
tcp.receive-buffer-size
tcp.set-receive-buffer-size
tcp.send-buffer-size
tcp.set-send-buffer-size
tcp.subscribe
tcp.shutdown
tcp[Symbol.dispose]()
udp-create-socket.create-udp-socket
udp.start-bind
udp.finish-bind
udp.start-connect
udp.finish-connect
udp.stream
udp.local-address
udp.remote-address
udp.address-family
udp.ipv6-only
udp.set-ipv6-only
udp.unicast-hop-limit
udp.set-unicast-hop-limit
udp.receive-buffer-size
udp.set-receive-buffer-size
udp.send-buffer-size
udp.set-send-buffer-size
udp.subscribe
udp[Symbol.dispose]()
incoming-datagram-stream.receive
incoming-datagram-stream.subscribe
outgoing-datagram-stream.send
outgoing-datagram-stream.subscribe
Conformance Tests
IP Lookup (1/1 test)
preview2_ip_name_lookup
(may fail ifnameserver
is not set correctly - see/etc/resolv.conf
)TCP (??/46 tests)
preview2_tcp_bind
preview2_tcp_connect
preview2_tcp_sample_application
preview2_tcp_sockopts
preview2_tcp_states
UDP (??/33 tests)
preview2_udp_bind
preview2_udp_connect
preview2_udp_sample_application
preview2_udp_sockopts
preview2_udp_states
The text was updated successfully, but these errors were encountered: