streams VS WHATWG HTML Standard

Compare streams vs WHATWG HTML Standard and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
streams WHATWG HTML Standard
5 137
1,331 7,710
0.6% 1.2%
6.0 9.4
4 days ago 4 days ago
HTML HTML
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

streams

Posts with mentions or reviews of streams. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-14.
  • Backpressure explained – the resisted flow of data through software
    1 project | news.ycombinator.com | 27 Mar 2024
    Yup, this is what WHATWG's Streams spec[0] (linked in the article) says. It defines backpressure as a "process of normalizing flow from the original source according to how fast the chain can process chunks" where the reader "propagates a signal backwards through the pipe chain".

    Mozilla's documentation[1] similarly defines backpressure as "the process by which a single stream or a pipe chain regulates the speed of reading/writing".

    The article confuses backpressure (the signal used for regulation of the flow) with the reason backpressure is needed (producers and consumers working at different speeds). It should be fairly clear from the metaphor, I would have thought: With a pipe of unbounded size there is no pressure. The pressure builds up when consumer is slower than producer, which in turn slows down the producer. (Or the pipe explodes, or springs a leak and has to drop data on the ground.)

    [0] https://streams.spec.whatwg.org/#pipe-chains

    [1] https://developer.mozilla.org/en-US/docs/Web/API/Streams_API...

  • Streams Standard
    1 project | news.ycombinator.com | 27 Mar 2024
  • Streams and React Server Components
    2 projects | dev.to | 14 Jan 2024
    // https://streams.spec.whatwg.org/#example-transform-identity const { writable, readable } = new TransformStream(); fetch("...", { body: readable }).then(response => /* ... */); const writer = writable.getWriter(); writer.write(new Uint8Array([0x73, 0x74, 0x72, 0x65, 0x61, 0x6D, 0x73, 0x21])); // "streams!" writer.close();
  • Goodbye, Node.js Buffer
    15 projects | news.ycombinator.com | 24 Oct 2023
    Yeah, in your case I think most of the complexity is actually on the ReadableStream side, not the base64 side.

    The thing that I'd actually want for your case is either a TransformStream for byte stream <-> base64 stream (which I expect will come eventually, once the simple case gets done), or something which would let you read the entire stream into Uint8Array or ArrayBuffer, which is a long-standing suggestion [1].

    ---

    > Why does de-chunking a byte array need to be complicated

    Keep in mind the concat proposal is _very_ early. If you think it would be useful to be able to concat Uint8Arrays and have that implicitly concatenate the underlying buffers, [2] is the place to open an issue.

    ---

    > You have made me realize I don't even know what the right venue is to vote on stuff. How should I signal to TC39 that e.g. Array.fromAsync is a good idea?

    Unfortunately, it's different places for different things. Streams are not TC39 at all; the right place for suggestions there is in the WHATWG streams repo [3]. Usually there's already an existing issue and you can add your use case as a comment in the relevant issue. TC39 proposals all have their own Github repositories, and you can open a new issue with your use case.

    Concrete use cases are much more helpful than just "this is a good idea". Though `fromAsync` in particular everyone agrees is good, and it mostly just needs implementations, which are ongoing; see e.g. [4]. If you _really_ want to advance a stage 3 proposal, you can contribute a PR to Chrome or Firefox with an implementation - but for nontrivial proposals that's usually hard. For TC39 in particular, use cases are only really valuable pre-stage-3 proposals.

    [1] https://github.com/whatwg/streams/issues/1019

    [2] https://github.com/jasnell/proposal-zero-copy-arraybuffer-li...

    [3] https://github.com/whatwg/streams

    [4] https://bugs.chromium.org/p/v8/issues/detail?id=13321

  • Are you using generators?
    2 projects | /r/learnjavascript | 30 Jun 2023
    // AudioWorkletStream // Stream audio from Worker to AudioWorklet // guest271314 2-24-2020 let port; onmessage = async e => { 'use strict'; if (!port) { [port] = e.ports; port.onmessage = event => postMessage(event.data); } const { urls } = e.data; // https://github.com/whatwg/streams/blob/master/transferable-streams-explainer.md const { readable, writable } = new TransformStream(); (async _ => { for await (const _ of (async function* stream() { while (urls.length) { yield (await fetch(urls.shift(), {cache: 'no-store'})).body.pipeTo(writable, { preventClose: !!urls.length, }); } })()); })(); port.postMessage( { readable, }, [readable] ); };

WHATWG HTML Standard

Posts with mentions or reviews of WHATWG HTML Standard. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-13.
  • Here are the 10 projects I am contributing to over the next 6 months. Share yours
    13 projects | dev.to | 13 Apr 2024
    WHAT-WG HTML
  • Add Writingsuggestions="" Attribute
    1 project | news.ycombinator.com | 12 Mar 2024
  • Streaming HTML out of order without JavaScript
    5 projects | news.ycombinator.com | 1 Mar 2024
    There's a long-standing WHATWG feature request open for it here: https://github.com/whatwg/html/issues/2791

    And several userland custom element implementation, like https://www.npmjs.com/package//html-include-element

    One of the cool things that you can do with client-side includes and shadow DOM is render the included HTML into a shadow root that has s, so that the child content of the include element is slotted into a shell implemented by the included HTML.

    This lets you do things like have the main page be the pre-page content and the included HTML be a heavily cached site-wide shell, and then another per-user include with personalized HTML - all cached appropriately.

  • An HTML Switch Control
    4 projects | news.ycombinator.com | 28 Feb 2024
  • YouTube video embedding harm reduction
    2 projects | news.ycombinator.com | 28 Feb 2024
    The `allow` attribute on iframes is a relatively recent API addition from 2017

    https://github.com/whatwg/html/pull/3287

  • Htmz – a low power tool for HTML
    10 projects | news.ycombinator.com | 19 Feb 2024
    I think there's a pretty strong argument at this point for this kind of replacing DOM with a response behavior being part of the platform.

    I think the first step would be an element that lets you load external content into the page declaratively. There's a spec issue open for this: https://github.com/whatwg/html/issues/2791

    And my custom element implementation of the idea: https://www.npmjs.com/package/html-include-element

    Then HTML could support these elements being targets of links.

  • The Ladybird Browser Project
    8 projects | news.ycombinator.com | 6 Feb 2024
    > Consider https://www.ietf.org/rfc/rfc1866.txt vs https://html.spec.whatwg.org/multipage/

    I thought, oh, that's not so bad. Then I realized what I was looking at was a 10 page index.

  • HTML Living Standard
    1 project | news.ycombinator.com | 28 Jan 2024
  • Is Htmx Just Another JavaScript Framework?
    9 projects | news.ycombinator.com | 11 Jan 2024
    I'd love to see something like HTMX get standardized, but I'm extremely pessimistic for HTMX's prospects for standardization in HTML.

    In talking to a few standards folks about it, they've all said, "oh, yeah, you want declarative AJAX; people have tried and failed to get that standardized for years." Even just trying to get

    to target a section of the page that isn't an has been argued about and hashed out for years.<p>Why is that? Well, for example, here's the form you have to fill out to start standardizing a front-end feature. <a href="https://github.com/whatwg/html/issues/new?assignees=&labels=addition%2Fproposal%2Cneeds+implementer+interest&projects=&template=1-new-feature.yml">https://github.com/whatwg/html/issues/new?assignees=&labels=...</a><p>It asks three main questions:<p>* What problem are you trying to solve?
  • New in Chrome 120 back button detection
    3 projects | news.ycombinator.com | 5 Dec 2023
    The issue with a single global event handler is discussed here: https://github.com/WICG/close-watcher#a-single-event

    If you use popover="", you get the kind of functionality you're discussing for free. For

    , the discussion is in progress and reaching a conclusion: https://github.com/whatwg/html/issues/9373

What are some alternatives?

When comparing streams and WHATWG HTML Standard you can also consider the following projects:

AudioWorkletStream - fetch() => ReadableStream => AudioWorklet

caniuse - Raw browser/feature support data from caniuse.com

encoding - Encoding Standard

WebKit - Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.

console - Console Standard

standards-positions

proposal-array-from-async - Draft specification for a proposed Array.fromAsync method in JavaScript.

Retroactive - Retroactive only receives limited support. Run Aperture, iPhoto, and iTunes on macOS Sonoma, macOS Ventura, macOS Monterey, macOS Big Sur, and macOS Catalina. Xcode 11.7 on macOS Mojave. Final Cut Pro 7, Logic Pro 9, and iWork ’09 on macOS Mojave or macOS High Sierra.

url - URL Standard

browser

proposal-async-iterator-helpers - Methods for working with async iterators in ECMAScript

exploits