I’m wondering how we would want to do Upgrade in the API (e.g. to HTTP/2, or WebSocket, or a CONNECT).
I can see two options here:
a) we provide some kind of streaming API, maybe similar to DispatchIO
and still maintain the socket connection for the API consumer
b) we completely give up access to the file descriptor (and pass along
data already read).
The former is probably easier for someone implementing the stuff himself,
the latter can have advantages if another lib is being used that works on top of fds (though maybe not because extra data may have been read already).
In any case we need API for this.