Continuations 2026/37: Response streaming
Weeknotes from Tim Riley covering a new job, maintenance fixes, Dry CLI improvements for streaming and styled text, Hanami Action response streaming, sponsor updates, and recent maintainer activity.

Weeknotes from Tim Riley covering a new job, maintenance fixes, Dry CLI improvements for streaming and styled text, Hanami Action response streaming, sponsor updates, and recent maintainer activity.

Added response streaming support to Hanami Action and pushed a related fix inspired during a trip to Sydney.
Dry CLI gained per-stream styled text support and injectable stream dependencies (stdout, stderr, stdin) to improve testing and behavior when redirecting.
dry-rails was updated for Rails 8 and released as dry-rails v0.8.0 via an automated maintainer release.
# Continuations 2026/37: Response streaming
These weeknotes cover work across several Ruby libraries and community activity. Tim Riley reports a new job, maintenance fixes prompted by a gem upgrade, practical improvements to Dry CLI for streams and styled text, a Hanami Action response-streaming addition, sponsor-list updates, and maintainership developments across the Dry ecosystem.
Tim started a new role at HotDoc as a manager/engineer. That change in schedule pushed these notes later than usual, but it also frames the week: small bursts of focused maintenance and collaboration across libraries he helps maintain.
Dry Monads' CI started failing after the json gem removed the json/add custom serialization machinery in version 3.0. The codebase was migrated to the new JSON::Coder API and released as Dry Monads v1.11.0. This is a targeted compatibility change to keep serialization working under the newer json gem behavior.
Styled text support landed in Dry CLI. Key characteristics:
Separately, Tim continued work on Dry CLI's handling of streams so that stdout, stderr, and stdin can be injected as command dependencies. That makes commands easier to test while allowing subclasses to retain their own initialize methods. The approach is described as slightly unorthodox but pragmatic: keep framework-level dependencies unobtrusive while improving testability.
Tim made a short trip to Sydney to visit a friend and got sunburnt on a walk between Coogee and Bondi. The visit coincided with a productive burst of maintenance work and inspiration for the Hanami Action streaming change.
Tim answered Discord questions about advanced ROM associations and array associations on changesets. These are active areas of discussion among maintainers and users.
Overall, this week focused on compatibility maintenance, practical improvements around streams and styling, and ongoing community-driven releases and automation.
A large API response becomes a client problem long before it becomes a network problem. A browser can receive hundreds of megabytes and still become unresponsive while buffering bytes, parsing one enormous JSON document, retaining duplicate object graphs, and rendering too much state on the main thread. The reliable so

Originally appeared on Tim Riley . Been sick as a dog ever since I wrote my last weeknotes, so there’s not a lot to report here except general feelings of uselessness. Good news, though: I’m now on antibiotics and hoping to be back to normal within a few days. 🤞 In my brief moments of lucidity, I managed to push forwa

Streaming does not speed anything up. The same request takes the same time either way. What changes is when the reader stops staring at nothing, and that turns out to be most of the experience.

Hey memory-conscious developers! 👋 Ever downloaded a 500MB file with HttpClient and watched your app's memory balloon? Today we'll fix that with streaming! The Problem: Buffering Everything By default, HttpClient buffers the entire response in memory: // 😱 This loads EVERYTHING into memory! var content = await client

Originally appeared on Tim Riley . Happy first anniversary to my weeknotes ! I started these exactly 52 weeks ago , and managed to write on 49 weeks since then. I’ll call that a success! After all this time, it still feels good. I’m going to keep it up. This week is also my first of three weeks of funemployment between

Originally appeared on Tim Riley . I’m trying to get these weeknotes back on track: aiming for a Monday release at the latest. Happy Monday :) The biggest thing I got up to this week was reviewing all of Andrea ’s wonderful work adding internal code reloading to Hanami—goodbye Guard! The Dry System piece is now merged,
Loading more related stories...
Open the app view to save this story, compare related coverage, and continue from the same source.