DEV Community


Discussion on: The History and Future of Socket-level Multiplexing

lktslionel profile image
Lionel T. • Edited

Wow, This article is brilliant. I learnt so much about the history of HTTP, muxing, protocol like HTTP/1 HTTP/2 HTTP/3 and QUIC. Thanks a lot! It is also impressive how well-designed solutions such as SSH are still relevant and viable to built great things on top off.

Now, I get why you've built qmux it seems so clear and smart at the same time, that I'm eager to read the code behind it to see how you did it 🤣.

I still have a question though, I don't understand this phrase:

"Whether the transport is WebSocket or stdio, as long as it can reliably transport ordered byte streams, qmux drops right in."

Where would you position qmux in relation to websocket? Websocket is already an application protocol, and it looks like qmux was meant to build other application layers (like websocket) but on top of QUIC or any other transports with muxing built-in.

Thanks again and I'm looking forward to hearing from you.
Take care Jeff

progrium profile image
Jeff Lindsay Author

Websocket is arguably another application layer protocol acting as a transport protocol. It's a special case because it's one of the only ways to get bi-directional streams into the browser. With any protocol that can act as a transport you can really nest in arbitrary ways. One of the reasons not to take models like the OSI network layers too seriously.

lktslionel profile image
Lionel T.

I agree. It is misleading in that case 😅