streams VS waku

Compare streams vs waku 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 waku
5 9
1,331 3,845
0.6% -
6.0 9.7
4 days ago 2 days ago
HTML TypeScript
GNU General Public License v3.0 or later MIT License
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] ); };

waku

Posts with mentions or reviews of waku. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-16.
  • React Server Components Example with Next.js
    9 projects | dev.to | 16 Apr 2024
    The moderators at Reactiflux pointed me toward Waku (also developed by Daishi Kato) as a potential alternative. However, Daishi explicitly recommends using the framework on non-production projects.
  • Waku – The Minimal React Framework
    1 project | news.ycombinator.com | 2 Apr 2024
  • Show HN: A live deployment of Waku RSC's examples
    1 project | news.ycombinator.com | 28 Feb 2024
    Waku (https://waku.gg/) is a new vite-based RSC framework with an emphasis on simplicity and developer experience. And Waku Land is a website I built to host each example from Waku's source code. It redeploys from Waku's main branch once every six hours.
  • The Current State of React Server Components: A Guide for the Perplexed
    4 projects | dev.to | 21 Feb 2024
    The other piece of important information to acknowledge here is that when we say RSCs need a framework, “framework” effectively just means “Next.js.” There are some smaller frameworks (like Waku) that support RSCs. There are also some larger and more established frameworks (like Redwood) that have plans to support RSCs or (like Gatsby) only support RSCs in beta. We will likely see this change once we get React 19 and RSCs are part of the Stable version. However, for now, Next.js is currently the only framework recommended in the official React docs that supports server components.
  • Streams and React Server Components
    2 projects | dev.to | 14 Jan 2024
    Many developers have used streams when building technology, but how many have truly understood their intricacies and their connection to React Server Components? Personally, the concept never quite clicked for me. It wasn't until contributing to Waku and being curious about how RSCs stream html—requiring me to take them seriously. Waku is a minimal layer over React Server Components using Vite.
  • Next.js 14
    8 projects | news.ycombinator.com | 26 Oct 2023
    > Next.js is still the only actual implementation of RSC

    Here's one https://github.com/dai-shi/waku. Also, Redwood is "all in on Server Components" https://tom.preston-werner.com/2023/05/30/redwoods-next-epoc....

  • Waku: The Minimalist React Framework with Server Components
    3 projects | news.ycombinator.com | 27 Aug 2023
  • Am I the only one that thinks that the direction of React is wrong?
    5 projects | /r/reactjs | 20 May 2023
    You can. You would just need to put in the work to go look at the (still entirely undocumented) React core library pieces of RSCs, and figure out how to integrate those into your bundler and router of choice. Other devs are already doing that, such as https://github.com/dai-shi/wakuwork

What are some alternatives?

When comparing streams and waku you can also consider the following projects:

AudioWorkletStream - fetch() => ReadableStream => AudioWorklet

Next.js - The React Framework

encoding - Encoding Standard

Next-JS-Landing-Page-Starter-Template - 🚀 Free NextJS Landing Page Template written in Tailwind CSS 3 and TypeScript ⚡️ Made with developer experience first: Next.js 14 + TypeScript + ESLint + Prettier + Husky + Lint-Staged + VSCode + Netlify + PostCSS + Tailwind CSS

console - Console Standard

hyperwave - Full-stack SSR apps with Bun, Hono, HTMX, and Tailwind

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

Next-JS-Landing-Page-Starter-Templ

url - URL Standard

redwood - The App Framework for Startups

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

next-auth - Authentication for the Web.