Title: Streams pain points · Issue #89 · nodejs/node · GitHub
Open Graph Title: Streams pain points · Issue #89 · nodejs/node
X Title: Streams pain points · Issue #89 · nodejs/node
Description: This is a place to enumerate pain points / problems with streams as they exist presently. Please focus on problems, clarifying comments and questions, or statements of commiseration for specific problems. Proposed solutions should be pos...
Open Graph Description: This is a place to enumerate pain points / problems with streams as they exist presently. Please focus on problems, clarifying comments and questions, or statements of commiseration for specific pr...
X Description: This is a place to enumerate pain points / problems with streams as they exist presently. Please focus on problems, clarifying comments and questions, or statements of commiseration for specific pr...
Opengraph URL: https://github.com/nodejs/node/issues/89
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Streams pain points","articleBody":"This is a place to enumerate pain points / problems with streams as they exist presently. Please focus on problems, clarifying comments and questions, or statements of commiseration for specific problems. Proposed **solutions should be posted as separate issues** that link back to this issue. Proposed solutions _should_ have enough example / backing code to have an informed discussion about the tradeoffs, but are not expected to be production ready / fully working.\n\nIf the pain point is \"rip out streams from core\" -- that can be discussed [over here](https://github.com/iojs/io.js/issues/55). :)\n\nI'll start:\n- Every stream cares about byte-level buffering. This necessitates an \"objectMode\" flag, which when omitted, causes all sorts of gotchas for stream users. I am of the opinion that the this mechanism for determining when and when not to buffer causes more problems than its worth and should be replaced. Streams' awareness of their contents reduces their utility.\n- Resource-backed streams (every stream in Node core) have to implement their own semantics for `destroy`, `close`, etc; and they have to ensure that their sequence of events matches all others over time.\n- `null` is a reserved value in streams -- streams cannot meaningfully pass this value along without bugs. This causes problems for folks migrating from earlier versions of streams, and in situations where `null` is \"in-alphabet.\"\n- The ergonomics of the streams API lead to the prevalence of packages like `through` and `through2` (which by itself is fine), but it would be nice if the APIs were directly usable \"out of the box\", so to speak.\n- There's no spec for streams, so it's hard to build alternatives that are guaranteed to work.\n","author":{"url":"https://github.com/chrisdickinson","@type":"Person","name":"chrisdickinson"},"datePublished":"2014-12-05T19:23:16.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":66},"url":"https://github.com/89/node/issues/89"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:525ecd02-b2a3-025c-86f9-600e73e52d85 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 93B4:2BE9C6:4E1664:699124:6A4DCB0D |
| html-safe-nonce | 78a9fa917cbe7da725dd4973215f97b5fb934633e23a9643cc7881873ee0a767 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5M0I0OjJCRTlDNjo0RTE2NjQ6Njk5MTI0OjZBNERDQjBEIiwidmlzaXRvcl9pZCI6IjcxNDg0ODU5NTIyNTk2MDczMDkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 9d01adb101f18f0602430a1f46d79d7e64eb8a4ee41bf9efa998481cff9cd8f7 |
| hovercard-subject-tag | issue:51135825 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nodejs/node/89/issue_layout |
| twitter:image | https://opengraph.githubassets.com/83313ffc43bd9b24f32c403bf50bd644f0583858bf1ea1608bdcc524389a84d3/nodejs/node/issues/89 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/83313ffc43bd9b24f32c403bf50bd644f0583858bf1ea1608bdcc524389a84d3/nodejs/node/issues/89 |
| og:image:alt | This is a place to enumerate pain points / problems with streams as they exist presently. Please focus on problems, clarifying comments and questions, or statements of commiseration for specific pr... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | chrisdickinson |
| hostname | github.com |
| expected-hostname | github.com |
| None | 06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33 |
| turbo-cache-control | no-preview |
| go-import | github.com/nodejs/node git https://github.com/nodejs/node.git |
| octolytics-dimension-user_id | 9950313 |
| octolytics-dimension-user_login | nodejs |
| octolytics-dimension-repository_id | 27193779 |
| octolytics-dimension-repository_nwo | nodejs/node |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 27193779 |
| octolytics-dimension-repository_network_root_nwo | nodejs/node |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 1d344bdb7547fe6bca17a59bb2b8aac3dc9532a0 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width