{"action":"created","issue":{"url":"https://api.github.com/repos/lucas-clemente/quic-go/issues/1518","repository_url":"https://api.github.com/repos/lucas-clemente/quic-go","labels_url":"https://api.github.com/repos/lucas-clemente/quic-go/issues/1518/labels{/name}","comments_url":"https://api.github.com/repos/lucas-clemente/quic-go/issues/1518/comments","events_url":"https://api.github.com/repos/lucas-clemente/quic-go/issues/1518/events","html_url":"https://github.com/lucas-clemente/quic-go/issues/1518","id":360541283,"node_id":"MDU6SXNzdWUzNjA1NDEyODM=","number":1518,"title":"Is there any plan to implement an option to deliver data out of order?","user":{"login":"ryskiwt","id":17015495,"node_id":"MDQ6VXNlcjE3MDE1NDk1","avatar_url":"https://avatars0.githubusercontent.com/u/17015495?v=4","gravatar_id":"","url":"https://api.github.com/users/ryskiwt","html_url":"https://github.com/ryskiwt","followers_url":"https://api.github.com/users/ryskiwt/followers","following_url":"https://api.github.com/users/ryskiwt/following{/other_user}","gists_url":"https://api.github.com/users/ryskiwt/gists{/gist_id}","starred_url":"https://api.github.com/users/ryskiwt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryskiwt/subscriptions","organizations_url":"https://api.github.com/users/ryskiwt/orgs","repos_url":"https://api.github.com/users/ryskiwt/repos","events_url":"https://api.github.com/users/ryskiwt/events{/privacy}","received_events_url":"https://api.github.com/users/ryskiwt/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-09-15T13:42:33Z","updated_at":"2018-09-16T02:08:04Z","closed_at":null,"author_association":"NONE","body":"Dear maintainers,\r\n\r\nQUIC draft says that implemantations can choose to offer the ability to deliver data out of order.\r\n\r\nhttps://tools.ietf.org/html/draft-ietf-quic-transport-14#section-9\r\n\r\n>    Stream offsets allow for the octets on a stream to be placed in\r\n>    order.  An endpoint MUST be capable of delivering data received on a\r\n>    stream in order.  Implementations MAY choose to offer the ability to\r\n>    deliver data out of order.  There is no means of ensuring ordering\r\n>    between octets on different streams.\r\n\r\nIs there any plan to implement an option to deliver data out of order?\r\nI think this option extends applicability of QUIC to delay-sensitive applications such as media data transfer. \r\n\r\n**Just for your information:**\r\nI forked and tried adding very simple implementation. (https://github.com/ryskiwt/quic-go/compare/759051dae9ebff2b5a2a0deda818834991829c73...ryskiwt:feature/disable_sort)\r\n\r\nI would be happy if you will consider introducing such option.\r\n\r\nThanks,\r\n\r\nRyosuke"},"comment":{"url":"https://api.github.com/repos/lucas-clemente/quic-go/issues/comments/421672556","html_url":"https://github.com/lucas-clemente/quic-go/issues/1518#issuecomment-421672556","issue_url":"https://api.github.com/repos/lucas-clemente/quic-go/issues/1518","id":421672556,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMTY3MjU1Ng==","user":{"login":"marten-seemann","id":1478487,"node_id":"MDQ6VXNlcjE0Nzg0ODc=","avatar_url":"https://avatars3.githubusercontent.com/u/1478487?v=4","gravatar_id":"","url":"https://api.github.com/users/marten-seemann","html_url":"https://github.com/marten-seemann","followers_url":"https://api.github.com/users/marten-seemann/followers","following_url":"https://api.github.com/users/marten-seemann/following{/other_user}","gists_url":"https://api.github.com/users/marten-seemann/gists{/gist_id}","starred_url":"https://api.github.com/users/marten-seemann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marten-seemann/subscriptions","organizations_url":"https://api.github.com/users/marten-seemann/orgs","repos_url":"https://api.github.com/users/marten-seemann/repos","events_url":"https://api.github.com/users/marten-seemann/events{/privacy}","received_events_url":"https://api.github.com/users/marten-seemann/received_events","type":"User","site_admin":false},"created_at":"2018-09-16T02:08:04Z","updated_at":"2018-09-16T02:08:04Z","author_association":"COLLABORATOR","body":"Hi @jared2501, which non-guaranteed delivery part of the spec do you mean? Stream data is always delivered reliably, unless the stream is reset.\r\nWould an API that looks something like \r\n```go\r\nStream.OnDataReceived() (uint64 /* offset */, []byte, error)\r\n```\r\nwork for your use case?"}}
{"actor":{"display_login":"marten-seemann"}}