This repository has been archived by the owner. It is now read-only.

WHATWG Streams #2

dylans opened this Issue Jan 12, 2017 · 0 comments


None yet
1 participant
Copy link

dylans commented Jan 12, 2017

@dylans commented on Thu Dec 03 2015

It looks like the WHATWG spec has had a fair amount of churn, based on this comment: "Although readable streams have been significantly evolved recently due to implementation progress providing feedback, writable streams have not yet caught up to all the discoveries in that space. As such, while the following spec will be the basis for a final API, it is expected to change in several important ways before being ready to ship. Please follow along on the writable streams issues label for details. "

I think we should probably review the changes to the spec since our implementation was last touched 5-7 months ago.

@nicknisi commented on Thu Dec 03 2015

FWIW, I believe that part about writable streams was there when we originally created this implementation. However, I believe a lot has still changed.

@bitpshr commented on Mon Apr 11 2016

The writable streams label for the WHATWG streams specification doesn't show any major changes via closed issues. After chatting with @nicknisi briefly about an approach to this one, I'm going to go back through the spec itself to make sure everything is still covered using this diff as a basis (thanks, Nick!)

This manual approach may take some time, though, so any other suggestions to easily identify spec changes (for this spec or any others going forward) would be helpful.

@bitpshr commented on Mon Apr 18 2016

I've been working to update our implementation to match the current spec here. It's slow progress; I've been focusing on API changes first and foremost, and I port over test changes, additions, and deletions where applicable. Ultimately, we'll need to write a test suite that fully hammers the spec, because the WHATWG tests are pretty limited and specific to their implementation.

For posterity, this diff shows the remaining commits we need to go through to get our implementation up to date.

@bitpshr commented on Thu May 12 2016

I went through 50 more commits, updating our streams implementation to match the current spec. Current progress can be found here.

This diff now shows what's left. There's only 25 commits remaining, but the next one to dig through involves merging ReadableByteStream and ReadableStream, so it's essentially a rewrite of the latter. Did we ever decide that streams were a definite for Dojo 2? @kitsonk @dylans

@kitsonk commented on Tue Oct 04 2016

We should consider breaking out stream from dojo-core. For what we thought we might use streams for in Dojo 2 has largely been supplanted by ES Observables. Therefore I think it should be migrated to its own package and removed from core, though there is a bit of intertwining with request.

@dylans commented on Tue Oct 04 2016

To add to this, core/request/node depends on streams. It does not look trivial to decouple request/node's usage of streams (e.g. into a version that doesn't rely on streams, with streams perhaps extending the capabilities of the request when included.

So it may make sense to move request/node into the streams package, or put both into a core-server or core-node package, though streams may have a use client-side, so I don't really know what the right answer is, but it's not easy to unwind at this point (which was the main reason they were included in one package early on as they were originally separate).

If we can decide on how we should restructure things, I would be open to doing the refactoring work unless someone else wants to tackle it.

@kitsonk commented on Tue Oct 04 2016

It is in there, but the architecture of core/request allows registration of additional handlers... the default core/reuest/node currently uses it, but it is an arbitrary usage versus a hard dependency.

@dylans commented on Fri Oct 28 2016

When #225 is finished, move this issue into new dojo/streams package.

@dylans dylans referenced this issue Jan 12, 2017


WHATWG Streams #90

@dylans dylans added this to the 2017.04 milestone Mar 1, 2017

@dylans dylans modified the milestones: 2017.04, 2017.05 Apr 29, 2017

@dylans dylans modified the milestones: 2017.06, 2017.05 May 14, 2017

@dylans dylans modified the milestones: 2017.06, 2017.07 Jul 4, 2017

@dylans dylans modified the milestones: 2017.07, 2017.09 Jul 29, 2017

@dylans dylans modified the milestones: 2017.09, 2017.12 Oct 10, 2017

@dylans dylans removed this from the 2017.12 milestone Jan 17, 2018

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.