Contact emails
ri...@chromium.org (spec and implementation), dom...@chromium.org (spec)
Explainer
Examples and motivation are included in the standard text: https://streams.spec.whatwg.org/#ts and https://streams.spec.whatwg.org/#example-ts-lipfuzz.
Design doc/Spec
Specification: https://streams.spec.whatwg.org/#ts
Tag review: https://github.com/w3ctag/design-reviews/issues/211
Summary
A TransformStream takes chunks from an input stream and performs arbitrary transformations on them before supplying them to an output stream. The pipeThrough API which shipped in M59 provided a way to pipe a stream through a {writable, readable} pair; TransformStream provides a helper to make creating such a pair much easier in the common case where it represents a transformation.
Motivation
TransformStream makes it easy to transform streaming data. Without it authoring a transformation involves a considerable amount of boilerplate. There is also a risk of developers creating transformations with non-standard APIs and losing the benefit of composition.
Risks
Interoperability and Compatibility
TransformStream is a new constructor in the global namespace. Its public API has been stable in the reference implementation since 2015, with only minor changes.
Edge: No signals
Firefox: Public support
Safari: No signals
Web developers: Positive
Edge and Safari have shipped parts of the Streams API, and Firefox has an implementation under development. Firefox has been active in development of the standard. Chrome will be the first browser to ship TransformStream. TransformStream is scheduled to be used in the Encoding and Fetch standards.
The reference implementation (a line-by-line transcription of the spec into JavaScript) has a full set of web platform tests (https://github.com/whatwg/streams/tree/master/reference-implementation/to-upstream-wpts/transform-streams) with 100% coverage of the reference implementation. These will be moved to the web-platform-tests repository as part of this implementation work.
Ergonomics
This is commonly used with response body streaming in the fetch API, as shown by some of the linked examples.
Stream APIs including TransformStream naturally function in an asynchronous chunked fashion which fits well into highly responsive web apps.
Activation
It will be immediately useful. Polyfills have existed for a while, and can be used to bridge the gap until all browsers reach feature parity.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes.
Link to entry on the feature dashboard
https://www.chromestatus.com/feature/5466425791610880
Requesting approval to ship?
Yes
-Boris
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8ddff709-cbea-88f8-5346-5ee0a22a1361%40mit.edu.
Adam,Can you provide any more details on the positive web developer signals and "It will be immediately useful" bit? I.e. are there existing deployed sites using the polyfill that will immediately start using our version when we ship? Are there developers that have tried our implementation (behind a flag?) and have indicated that they would use it in production when we ship?
I'm just trying to weigh the benefits of shipping now vs. the cost of waiting for some signals from other potential implementers.
Since this has landed in a WHATWG spec, that means there must be support from the design from someone outside of chromium, right? Was it annevk@ who reviewed the design, or others?
It seems like the voices on Mozilla's issue are converging towards "important", so that's an encouraging sign that if shipped it will not be a Chrome-only API.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY_2AHV2Mw_6a5%2BX%2BeRFpNtUfck6OChBgi8RcTt_H78kMA%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAC_ixdyKC3hd0-QtAPpf0%2BdQzk1iOkV%3DyPDzUMtCDWKPP552Yg%40mail.gmail.com.
Hi,Based on what I heard in the thread so far, it sounds like (a) this is an incremental add-on to an existing feature-set, not a totally new concept and (b) there is significant developer interest in this. As for other browser interest, I see that development happened on the WHATWG streams repository. @Adam: I'm assuming you and others reached out to partners at other browsers to ask for their feedback on this feature?