{"action":"created","issue":{"url":"https://api.github.com/repos/aspnet/SignalR/issues/2012","repository_url":"https://api.github.com/repos/aspnet/SignalR","labels_url":"https://api.github.com/repos/aspnet/SignalR/issues/2012/labels{/name}","comments_url":"https://api.github.com/repos/aspnet/SignalR/issues/2012/comments","events_url":"https://api.github.com/repos/aspnet/SignalR/issues/2012/events","html_url":"https://github.com/aspnet/SignalR/issues/2012","id":314241538,"number":2012,"title":"Use fixed length length for binary message format","user":{"login":"muratg","id":1808428,"avatar_url":"https://avatars3.githubusercontent.com/u/1808428?v=4","gravatar_id":"","url":"https://api.github.com/users/muratg","html_url":"https://github.com/muratg","followers_url":"https://api.github.com/users/muratg/followers","following_url":"https://api.github.com/users/muratg/following{/other_user}","gists_url":"https://api.github.com/users/muratg/gists{/gist_id}","starred_url":"https://api.github.com/users/muratg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/muratg/subscriptions","organizations_url":"https://api.github.com/users/muratg/orgs","repos_url":"https://api.github.com/users/muratg/repos","events_url":"https://api.github.com/users/muratg/events{/privacy}","received_events_url":"https://api.github.com/users/muratg/received_events","type":"User","site_admin":false},"labels":[{"id":463319720,"url":"https://api.github.com/repos/aspnet/SignalR/labels/2%20-%20Working","name":"2 - Working","color":"cccccc","default":false},{"id":868582887,"url":"https://api.github.com/repos/aspnet/SignalR/labels/cost:%20S","name":"cost: S","color":"ffcccc","default":false},{"id":463318954,"url":"https://api.github.com/repos/aspnet/SignalR/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":{"login":"davidfowl","id":95136,"avatar_url":"https://avatars3.githubusercontent.com/u/95136?v=4","gravatar_id":"","url":"https://api.github.com/users/davidfowl","html_url":"https://github.com/davidfowl","followers_url":"https://api.github.com/users/davidfowl/followers","following_url":"https://api.github.com/users/davidfowl/following{/other_user}","gists_url":"https://api.github.com/users/davidfowl/gists{/gist_id}","starred_url":"https://api.github.com/users/davidfowl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidfowl/subscriptions","organizations_url":"https://api.github.com/users/davidfowl/orgs","repos_url":"https://api.github.com/users/davidfowl/repos","events_url":"https://api.github.com/users/davidfowl/events{/privacy}","received_events_url":"https://api.github.com/users/davidfowl/received_events","type":"User","site_admin":false},"assignees":[{"login":"davidfowl","id":95136,"avatar_url":"https://avatars3.githubusercontent.com/u/95136?v=4","gravatar_id":"","url":"https://api.github.com/users/davidfowl","html_url":"https://github.com/davidfowl","followers_url":"https://api.github.com/users/davidfowl/followers","following_url":"https://api.github.com/users/davidfowl/following{/other_user}","gists_url":"https://api.github.com/users/davidfowl/gists{/gist_id}","starred_url":"https://api.github.com/users/davidfowl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidfowl/subscriptions","organizations_url":"https://api.github.com/users/davidfowl/orgs","repos_url":"https://api.github.com/users/davidfowl/repos","events_url":"https://api.github.com/users/davidfowl/events{/privacy}","received_events_url":"https://api.github.com/users/davidfowl/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/aspnet/SignalR/milestones/10","html_url":"https://github.com/aspnet/SignalR/milestone/10","labels_url":"https://api.github.com/repos/aspnet/SignalR/milestones/10/labels","id":3194471,"number":10,"title":"2.1.0-rc1","description":"","creator":{"login":"anurse","id":7574,"avatar_url":"https://avatars3.githubusercontent.com/u/7574?v=4","gravatar_id":"","url":"https://api.github.com/users/anurse","html_url":"https://github.com/anurse","followers_url":"https://api.github.com/users/anurse/followers","following_url":"https://api.github.com/users/anurse/following{/other_user}","gists_url":"https://api.github.com/users/anurse/gists{/gist_id}","starred_url":"https://api.github.com/users/anurse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anurse/subscriptions","organizations_url":"https://api.github.com/users/anurse/orgs","repos_url":"https://api.github.com/users/anurse/repos","events_url":"https://api.github.com/users/anurse/events{/privacy}","received_events_url":"https://api.github.com/users/anurse/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":83,"state":"open","created_at":"2018-03-16T21:12:10Z","updated_at":"2018-04-16T05:56:57Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2018-04-13T20:31:55Z","updated_at":"2018-04-16T06:17:26Z","closed_at":null,"author_association":"OWNER","body":"Today we use varint and it can be 1-5 bytes, which means we have to buffer. If we use a fixed length, we can write directly to the pipe and come back and write the length back at the beginning. We'll use a fixed 4-byte length (max 2GB, which is the current max anyway)\r\n\r\ncc @davidfowl @anurse "},"comment":{"url":"https://api.github.com/repos/aspnet/SignalR/issues/comments/381491071","html_url":"https://github.com/aspnet/SignalR/issues/2012#issuecomment-381491071","issue_url":"https://api.github.com/repos/aspnet/SignalR/issues/2012","id":381491071,"user":{"login":"davidfowl","id":95136,"avatar_url":"https://avatars3.githubusercontent.com/u/95136?v=4","gravatar_id":"","url":"https://api.github.com/users/davidfowl","html_url":"https://github.com/davidfowl","followers_url":"https://api.github.com/users/davidfowl/followers","following_url":"https://api.github.com/users/davidfowl/following{/other_user}","gists_url":"https://api.github.com/users/davidfowl/gists{/gist_id}","starred_url":"https://api.github.com/users/davidfowl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidfowl/subscriptions","organizations_url":"https://api.github.com/users/davidfowl/orgs","repos_url":"https://api.github.com/users/davidfowl/repos","events_url":"https://api.github.com/users/davidfowl/events{/privacy}","received_events_url":"https://api.github.com/users/davidfowl/received_events","type":"User","site_admin":false},"created_at":"2018-04-16T06:17:26Z","updated_at":"2018-04-16T06:17:26Z","author_association":"OWNER","body":"> is this a good way to handle this kind of problem? I have the same issue of first writing to temp buffer in my mqtt protocol because mqtt also has varint length header.\r\n\r\nIt's non trivial to avoid the buffering with a varint. The only thing I can think of would be a serializer that  had a \"what-if\" mode. That mode would do a fake serialize that counted the bytes but did nothing else.   So you'd run in that mode, get the length, the run again to get the actual data."}}
{"actor":{"display_login":"davidfowl"}}