JRFC 34 - Streamer - A Stream Multiplexing Interface
- Dominant language
- No language data
- Stars
- 328
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
# Streamer - A Stream Multiplexing Interface
There are many ways to do stream muxing (multiplexing). Many transports offer their own stream multiplexing, for example:
- SSH
- QUIC
- HTTP/2
- WebRTC
These often differ in how to handle flow control, congestion, priorities, stream hierarchies, and so on. The interfaces different and are often incomplete. They requires knowing much about the specific transport in question, which forces applications to understand the stream muxing library.
This is a great moment to standardize a common API. We should have
- a standard, **cross-platform** interface for stream-multiplexors
- a default implementation that works over any reliable stream (e.g. TCP)
- native implementation wrappers
- [polyfill](http://en.wikipedia.org/wiki/Polyfill) for missing features
- interfaces for both simple streams (no config) and advanced features (priorities, etc)
---
Links:
- Muxado: https://github.com/inconshreveable/muxado/tree/wip
- HTTP2: https://http2.github.io/http2-spec/#StreamsLayer
- WebRTC: http://w3c.github.io/webrtc-pc/#peer-to-peer-data-api
- QUIC: https://docs.google.com/document/d/1RNHkx_VvKWyWg6Lr8SZ-saqsQx7rFV-ev2jRFUoVD34/mobilebasic#h.zd2x76sign3y
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.