Open jmmaloney4 opened 2 months ago
I believe the Deno folks have worked on something in this space: https://github.com/denoland/rustls-tokio-stream that might be a useful comparison point.
There's some previous discussion in an issue that was created when the Rustls specific code lived alongside the native-tls code in https://github.com/tokio-rs/tls/issues/40
@cpu tokio-rustls is not affected by https://github.com/tokio-rs/tls/issues/40 .
Any split stream based on rustls must be locked until rustls support full-duplex mode. https://github.com/rustls/rustls/issues/288
@cpu tokio-rustls is not affected by https://github.com/tokio-rs/tls/issues/40 .
Ah! Thanks for clarifying. I had indeed missed that this discussion was centered around native-tls.
Tokio allows splitting a
TcpStream
into a (Owned
)ReadHalf
/ (Owned
)WriteHalf
viaTcpStream::split
/TcpStream::into_split
, but I don't believetokio_rustls
allows splitting aTlsStream
that wraps aTcpStream
. Is there a way to do this with the current API that I'm not thinking of? If not, I'd be interested in helping to implement this feature.The split method in
TcpStream
above is not the same astokio::io::split
. It supports true simultaneous reads and writes as opposed to just locking around the syscalls.