{"action":"created","issue":{"url":"https://api.github.com/repos/bidiweb/wish/issues/5","repository_url":"https://api.github.com/repos/bidiweb/wish","labels_url":"https://api.github.com/repos/bidiweb/wish/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/bidiweb/wish/issues/5/comments","events_url":"https://api.github.com/repos/bidiweb/wish/issues/5/events","html_url":"https://github.com/bidiweb/wish/issues/5","id":180515328,"number":5,"title":"Expose HTTP/2 Streams via Standardized API","user":{"login":"benjchristensen","id":813492,"avatar_url":"https://avatars.githubusercontent.com/u/813492?v=3","gravatar_id":"","url":"https://api.github.com/users/benjchristensen","html_url":"https://github.com/benjchristensen","followers_url":"https://api.github.com/users/benjchristensen/followers","following_url":"https://api.github.com/users/benjchristensen/following{/other_user}","gists_url":"https://api.github.com/users/benjchristensen/gists{/gist_id}","starred_url":"https://api.github.com/users/benjchristensen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjchristensen/subscriptions","organizations_url":"https://api.github.com/users/benjchristensen/orgs","repos_url":"https://api.github.com/users/benjchristensen/repos","events_url":"https://api.github.com/users/benjchristensen/events{/privacy}","received_events_url":"https://api.github.com/users/benjchristensen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":20,"created_at":"2016-10-02T14:38:04Z","updated_at":"2016-10-05T18:43:37Z","closed_at":null,"body":"HTTP/2 streams already provide the needed bidirectional byte streams we are seeking to achieve. It seems superfluous to layer yet another protocol on top of them with extra framing when we could use HTTP/2 directly if we just had standardized APIs. \r\n\r\nIn fact, targeting HTTP/2 streams directly is exactly what I'm doing with Proxygen (where we can control both client and server on mobile devices) via APIs we expose. We then layer our application protocol (ReactiveSocket https://github.com/ReactiveSocket/reactivesocket) over HTTP/2. \r\n\r\nIs there a reason to not pursue a standard API for this rather than another framing layer?"},"comment":{"url":"https://api.github.com/repos/bidiweb/wish/issues/comments/251762727","html_url":"https://github.com/bidiweb/wish/issues/5#issuecomment-251762727","issue_url":"https://api.github.com/repos/bidiweb/wish/issues/5","id":251762727,"user":{"login":"wenbozhu","id":1471472,"avatar_url":"https://avatars.githubusercontent.com/u/1471472?v=3","gravatar_id":"","url":"https://api.github.com/users/wenbozhu","html_url":"https://github.com/wenbozhu","followers_url":"https://api.github.com/users/wenbozhu/followers","following_url":"https://api.github.com/users/wenbozhu/following{/other_user}","gists_url":"https://api.github.com/users/wenbozhu/gists{/gist_id}","starred_url":"https://api.github.com/users/wenbozhu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wenbozhu/subscriptions","organizations_url":"https://api.github.com/users/wenbozhu/orgs","repos_url":"https://api.github.com/users/wenbozhu/repos","events_url":"https://api.github.com/users/wenbozhu/events{/privacy}","received_events_url":"https://api.github.com/users/wenbozhu/received_events","type":"User","site_admin":false},"created_at":"2016-10-05T18:43:37Z","updated_at":"2016-10-05T18:43:37Z","body":"To summarize my opinions: \r\n\r\n1. A low-level HTTP/2 frame-level API is unlikely to happen on most platforms\r\n2. A bidi byte-stream API for HTTP (HTTP/2 or not) is happening, if not on iOS ?\r\n3. For 2) I'd like to see reactive streams  (Java Flow API) to be the standard\r\n4. Reusing HTTP/2 data frames for L7 frames is better off being treated as an implementation detail for a closed environment. The actual gain is to be measured, but I think CPU efficiency will be greatly improved.\r\n5. HTTP/* is not really a high-performance wire protocol. You either care about the Web for which the proposed extension is not really a good thing for Web; or optimize for a closed environment for which any native solution may do better.\r\n\r\n"}}
{"actor":{"display_login":"wenbozhu"}}