Allow a Runtime to have no raw TCP sockets (for wasm)
IIUC, in browser environments, you can't open raw TCP sockets from wasm; instead you have to use WebSockets or such.
That's not a complete showstopper: we could still use WebSockets for alternative transports, and then make those mandatory for wasm environments. But to do that, we'd need a few infrastructure changes:
- We'd need
Runtime
to be able to exist without TCP support: either by being more cautious about when we requireTcpProvider
in other crates, or by letting theTcpProvider
implementation return some kind ofNotImplemented
error. The first alternative has complexity drawbacks; the second has a correctness issue. - We'll need a websocket-only implementation of snowflake or something that can get used when we don't have raw TCP.
This ticket is probably pretty far down the road.