{"action":"closed","issue":{"url":"https://api.github.com/repos/spray/spray/issues/281","labels_url":"https://api.github.com/repos/spray/spray/issues/281/labels{/name}","comments_url":"https://api.github.com/repos/spray/spray/issues/281/comments","events_url":"https://api.github.com/repos/spray/spray/issues/281/events","html_url":"https://github.com/spray/spray/issues/281","id":13932486,"number":281,"title":"can: add \"auto-chunking\" and client-side \"chunkless-streaming\"","user":{"login":"jrudolph","id":9868,"avatar_url":"https://avatars.githubusercontent.com/u/9868?v=3","gravatar_id":"","url":"https://api.github.com/users/jrudolph","html_url":"https://github.com/jrudolph","followers_url":"https://api.github.com/users/jrudolph/followers","following_url":"https://api.github.com/users/jrudolph/following{/other_user}","gists_url":"https://api.github.com/users/jrudolph/gists{/gist_id}","starred_url":"https://api.github.com/users/jrudolph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrudolph/subscriptions","organizations_url":"https://api.github.com/users/jrudolph/orgs","repos_url":"https://api.github.com/users/jrudolph/repos","events_url":"https://api.github.com/users/jrudolph/events{/privacy}","received_events_url":"https://api.github.com/users/jrudolph/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/spray/spray/labels/Improvement","name":"Improvement","color":"F4CA00"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/spray/spray/milestones/4","labels_url":"https://api.github.com/repos/spray/spray/milestones/4/labels","id":363270,"number":4,"title":"akka-http","description":"Issues that will only be fixed in akka-http and not in a spray maintenance release.","creator":{"login":"sirthias","id":135347,"avatar_url":"https://avatars.githubusercontent.com/u/135347?v=3","gravatar_id":"","url":"https://api.github.com/users/sirthias","html_url":"https://github.com/sirthias","followers_url":"https://api.github.com/users/sirthias/followers","following_url":"https://api.github.com/users/sirthias/following{/other_user}","gists_url":"https://api.github.com/users/sirthias/gists{/gist_id}","starred_url":"https://api.github.com/users/sirthias/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sirthias/subscriptions","organizations_url":"https://api.github.com/users/sirthias/orgs","repos_url":"https://api.github.com/users/sirthias/repos","events_url":"https://api.github.com/users/sirthias/events{/privacy}","received_events_url":"https://api.github.com/users/sirthias/received_events","type":"User","site_admin":false},"open_issues":55,"closed_issues":21,"state":"open","created_at":"2013-06-25T08:48:29Z","updated_at":"2015-02-06T13:23:35Z","due_on":null,"closed_at":null},"comments":26,"created_at":"2013-05-03T12:40:24Z","updated_at":"2015-02-06T13:23:35Z","closed_at":"2015-02-06T13:23:35Z","body":"Let's extend this ticket to add \"auto chunking\", so we end up with these new *spray-can* settings:\r\n\r\n- `incoming-auto-chunking-threshold-size` (on server- and client-side):\r\n  `infinite` (default): Incoming unchunked messages and chunks are delivered as is, when they have been received completely\r\n  `<value>`: if the `Content-Length` of an incoming unchunked message is > value the server delivers incoming packets as `MessageChunk` instances right when they arrive\r\n\r\n- `outgoing-auto-chunking-threshold-size` (on server- and client-side):\r\n  `infinite` (default): All messages and chunks are sent as is\r\n  `<value>`: if the `Content-Length` of an outgoing unchunked message is > value the server automatically splits it into chunks before sending it out. This is especially useful when sending big files (see #365).\r\n\r\n- `chunkless-streaming` (on server- and client-side):\r\n  `off` (default): All messages and chunks are sent as is\r\n  `on`: The individual `MessageChunk` instances coming in from the application are sent as parts of the actual response entity rather than as true HTTP chunks.\r\n\r\nThe current state is this:\r\n\r\n - `incoming-auto-chunking-threshold-size`\r\n  - [x] server-side\r\n  - [x] client-side\r\n - `outgoing-auto-chunking-threshold-size`\r\n  - [ ] server-side\r\n  - [ ] client-side\r\n - `chunkless-streaming`\r\n  - [x] server-side\r\n  - [x] client-side\r\n"}}