---
title: "Bye Rack::BodyProxy, hi `rack.response_finished`"
publication: "Ruby Weekly"
issue: 764
published_at: "2025-08-28"
canonical_url: "https://rubyweekly.com/issues/764"
---

Plus DHH's newest Linux release, Feedjira 4.0, and RuboCop 1.8. |        

#​764 — August 28, 2025 

[Read on the Web](https://rubyweekly.com/issues/764)  

Together with [![FastRuby.io\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_467,h_106/e_make_transparent/co_white,e_outline:14/y65nyff19ylf5udphsq4.png)](https://go.fastruby.io/a68)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/izjwpoqhpvpas38qlz0j.jpg)](https://blog.rubygems.org/2025/08/25/rubygems-security-response.html)  

[How RubyGems.org Protects Our Community’s Critical OSS Infrastructure](https://blog.rubygems.org/2025/08/25/rubygems-security-response.html) — A look behind the curtain at how security operates at [RubyGems.org](https://rubygems.org/), sharing a look at how they proactively handle incidents (such as [this recent incident](https://socket.dev/blog/60-malicious-ruby-gems-used-in-targeted-credential-theft-campaign)), and the day-to-day work undertaken to keep the broader ecosystem safe. 

Marty Haught (RubyGems)   

[Friendship Ended with `Rack::BodyProxy`](https://railsatscale.com/2025-08-26-friendship-ended-with-rack-bodyproxy/) — A look into a subtle but important shift in how Rack middleware can hook into the end of a request/response lifecycle, thanks to the `response_finished`feature, now standardized in Rack 3. 

Hartley McGuire   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/30e670a7.png)](https://go.fastruby.io/a68) 

[⚓ Tech Debt Dragging You Down? Lighten the Load with Bonsai](https://go.fastruby.io/a68) — Do you want to manage upgrades, patch security issues, and reduce tech debt without halting your team’s feature delivery? 🏋️ Bonsai can do the heavy lifting — fixed-cost, monthly service options for Rails apps with an aging codebase. 

🌳 Bonsai by FastRuby.io sponsor   

[Ruby Central's OSS Changelog for August 2025](https://rubycentral.org/news/ruby-centrals-oss-changelog-august-2025/) — Marty Haught reflects on [RubyGems.org’s new funding model](https://rubycentral.org/news/rubygems-org-funding-model-a-new-path-for-community-led-growth/), the final RailsConf, and shares some news on recent Bundler and RubyGems developments, including _“experimental support for Python-style “wheels””_. 

Ruby Central Team   

**IN BRIEF:** 

- 37signals explains [how it runs its Docker registry on-prem](https://dev.37signals.com/running-our-docker-registry-on-prem-with-harbor/) using [Harbor.](https://goharbor.io/) Could be of interest to Kamal users.
- [Wubular](https://rubyelders.github.io/wubular/) is a new Web-based regex tester (akin to [Rubular](https://rubular.com/)) but that uses a WebAssembly build of Ruby to make it all work – here's [a technical explanation of how it works.](https://rubyelders.com/writings/2025-08-wubular-1.html)
- ⛰️ This year's [Rocky Mountain Ruby](https://rockymtnruby.dev/) takes place in Colorado this October 6-7 and [the full schedule](https://rockymtnruby.dev/schedule/) is now live.
- 🇺🇸 The [San Francisco Ruby Conference](https://sfruby.com/), taking place this November 19-20, also [has its beautifully designed schedule up](https://sfruby.com/schedule/).
- The [Hanami](https://hanamirb.org/) project is [wrapping up its recent sponsorship drive](https://hanamirb.org/blog/2025/08/27/wrapping-up-our-sponsorship-drive/) – they're still looking for help but now have enough to fund one day a week of paid maintenance.   

[Using PicoRuby to Play Famicom / NES Music](https://speakerdeck.com/kishima/mruby-picoruby-de-huamikonyin-le-wozou-deru) — This slide deck is entirely in Japanese (plus some Ruby code) but I know the topic will be interesting to those willing to go through it. Essentially Katsuhiko wanted to use Ruby to play NES music on an ESP32 device running [PicoRuby](https://github.com/picoruby/picoruby). The underlying [code, with the README in English, is here.](https://github.com/kishima/esp32_nes_apu_mruby) 

Katsuhiko Kageyama   

[Ratcheting to Zero: How Incremental Constraints Eliminate Tech Debt](https://link.testdouble.com/805aa5) — Is eliminating tech debt always slow? Nope! Ratcheting is a powerful way to renovate legacy systems—watch the video. 

Test Double sponsor   

📄 [The Basics of Creating Rails Plugins](https://guides.rubyonrails.org/plugins.html) – Part of the official Rails docs no longer considered a ‘work in progress.’ Ruby on Rails Guides 

📄 [Shift+Click Selection for Bulk Actions with Stimulus](https://railsdesigner.com/shift-selection/) – _“Ever needed a ‘bulk actions’ on a list of resources in your Rails app?”_ Rails Designer  

🛠 Code & Tools  

🤫 [Introducing Top Secret: A Filter for Sensitive Information](https://thoughtbot.com/blog/top-secret) — Thoughtbot shows off its latest Ruby library designed to filter sensitive information (e.g. credit card numbers, names, and emails) from any text you provide before you send it off to external APIs, LLMs, or the like. [GitHub repo.](https://github.com/thoughtbot/top_secret) 

Steve Polito (Thoughtbot)   

[rv: A New Kind of Ruby Management Tool](https://andre.arko.net/2025/08/25/rv-a-new-kind-of-ruby-management-tool/) — Pining for the Ruby equivalent of Python’s fantastic [`uv` tool](https://docs.astral.sh/uv), André and folks from RubyGems and rbenv are creating `rv`, which aims to be a Ruby version and package manager, all in one. It’s early days, but their goals are exciting. [GitHub repo.](https://github.com/spinel-coop/rv) 

André Arko   

[🤖 Everyone Wants to Use AI in Their Rails Apps: We're Already Doing It](https://sinaptia.dev/posts/scaling-image-classification-with-ai) — We're always looking for ways to use AI to solve real-world problems. Read how we use it to classify millions of images monthly. 

SINAPTIA sponsor   

[iceberg-ruby: Apache Iceberg for Ruby](https://github.com/ankane/iceberg-ruby) — A new [Apache Iceberg](https://iceberg.apache.org/) client library. With so many great libraries under his belt, I think Andrew Kane is in the running to be the [Sindre Sorhus](https://github.com/sindresorhus) of Ruby! 

Andrew Kane   

[MiniI18n 1.1: Minimalistic Internationalization for Ruby](https://github.com/markets/mini_i18n) — Simple, flexible and fast i18n library that uses translations stored in JSON or YAML files. [v1.1 changelog.](https://github.com/markets/mini_i18n/blob/master/CHANGELOG.md#110) 

Marc Anguera Insa   

- [Feedjira 4.0](https://github.com/feedjira/feedjira) – A popular library for parsing RSS and Atom feeds ([v4.0 changelog](https://github.com/feedjira/feedjira/blob/main/CHANGELOG.md#400)).
- [Typhoeus 1.5](https://github.com/typhoeus/typhoeus) – Wraps `libcurl` to make fast and reliable HTTP requests.
- [Signet v0.21](https://github.com/googleapis/signet) – OAuth 1.0 / OAuth 2.0 implementation from Google.
- 🤖 [OpenAI Ruby 0.20](https://github.com/openai/openai-ruby) – Official Ruby SDK for the OpenAI API.
- [RuboCop v1.80](https://github.com/rubocop/rubocop) – Ruby static code analyzer and formatter.
- [Net::LDAP for Ruby 0.20](https://github.com/ruby-ldap/ruby-net-ldap) – Pure Ruby LDAP client library.
- [Rodauth 2.40](https://github.com/jeremyevans/rodauth) – Advanced auth framework. ([Changelog.](https://github.com/jeremyevans/rodauth/blob/master/CHANGELOG))
- [Koala 3.7](https://github.com/arsduo/koala) – Client library for various Facebook APIs.       

📰 Classifieds   

🔎 [AppSignal](https://www.appsignal.com/?utm_source=cooperpress&utm_medium=cooperpress&utm_term=ruby_nl) gives Ruby devs the insights they need to fix bugs fast and deploy with confidence. [Try it free today](https://www.appsignal.com/?utm_source=cooperpress&utm_medium=cooperpress&utm_term=ruby_nl), no credit card required.    

📢 Elsewhere  

A roundup of some other interesting stories from across the broader landscape, in case you've missed them:  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dmsb3aldwvsovi4me2mr.jpg)](https://world.hey.com/dhh/omarchy-2-0-16fefc15)  

- Ruby's own David Heinemeier Hansson, a.k.a. DHH, has been building out his own Arch-based Linux distro/setup of sorts and [has now released Omarchy 2.0](https://world.hey.com/dhh/omarchy-2-0-16fefc15) (here's [a 30 minute video tour](https://www.youtube.com/watch?v=TcHY0AEd2Uw)). It's been very popular with developers on social media recently (including people [building new machines entirely for Omarchy](https://bramjetten.dev/articles/its-an-exciting-time-to-build-computers-again)) looking to try something away from the Apple/Microsoft hegemony.
- Sam Rose has put together [a fantastic illustrated introduction to 'Big O' algorithmic complexity notation](https://samwho.dev/big-o/), along with JavaScript examples. If you've ever wondered what O(1), O(log n), etc. mean, this is a great primer.
- A thorough look into [Postgres logging techniques for performance optimization.](https://www.crunchydata.com/blog/postgres-logging-for-performance-optimization)
- The WebKit team [introduces the CSS `random()` function](https://webkit.org/blog/17285/rolling-the-dice-with-css-random/), now in Safari Technology Preview, and coming to CSS more generally (in some form or another) later on.         

Curated by [Peter Cooper](https://twitter.com/cooperx86) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
