Marten Seemann
Marten Seemann
I'm not sure if I want to merge this. This is increasing the API surface of an API that, as you say, we change quite frequently.
I _think_ the current API should be fairly stable by now, but of course this very much depends on how we integrate qtls into quic-go. If I remember correctly, we...
The `Stream` interface implements `io.Reader`. `io.Reader` implies in-order delivery. For out-of-order delivery, we’d need to add another method to the `Stream` (or another callback). I’m not opposed to doing this,...
Hi @jared2501, which non-guaranteed delivery part of the spec do you mean? Stream data is always delivered reliably, unless the stream is reset. Would an API that looks something like...
No, that's not part of the QUIC spec. All QUIC streams are reliable. Partial reliability was postponed to QUIC v2.
There's a new proposal to add a MESSAGE frame to QUIC in https://mailarchive.ietf.org/arch/msg/quic/p0SSsnlUi_m6xNvTmBEJ41UPYA0. It sounds like this would be the better solution for your use case, since you don't care...
Out-of-order delivery has nothing to do with the datagram draft. Datagrams are about unreliable delivery.
I'm struggling to reproduce this. I wrote a script that's supposed to fill up the kernel send buffer: https://gist.github.com/marten-seemann/f376b2e89261b0dd2bd34e3f20002608 It doesn't seem to do that though.
The culprit seems to be packet headers, not frames. Or am I missing something? You're right, in #2928 I started implementing a pool for packet headers, but it turned out...
We now use a `sync.Pool` for ACK frames (https://github.com/lucas-clemente/quic-go/pull/3547). https://github.com/lucas-clemente/quic-go/issues/3526 is tracking further work to reduce allocations, including those of header structs.