---
title: "All the gem statistics you can eat"
publication: "Ruby Weekly"
issue: 748
published_at: "2025-05-01"
canonical_url: "https://rubyweekly.com/issues/748"
---

Plus a dev teases a new, low overhead Ruby profiler. |        

#​748 — May 1, 2025 

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

Together with [![Testdouble\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_279/e_make_transparent/co_white,e_outline:32/fuxab1jg21v6anerbqwg.png)](https://link.testdouble.com/408b57)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/nxvhujwyzfocelo1dknz.jpg)](https://itsi.fyi/)  

[Itsi: A Fast, New Ruby Rack Server](https://itsi.fyi/) — Itsi is an interesting new player joining the world of Ruby app servers. It’s written in Rust, is Rack compliant, and works as a reverse proxy, API gateway and static file server. You can choose between a typical blocking model, an (optional) [fiber-based scheduling approach](https://itsi.fyi/itsi_scheduler/), or even mix the two in a hybrid model. 

Wouter Coppieters   

📊 [Ruby Gem Analytics Powered by ClickHouse and Ruby Central](https://clickhouse.com/blog/announcing-ruby-gem-analytics-powered-by-clickhouse) — How would you like to quickly run SQL queries to do analytics over every single Ruby gem download since 2017? Now you can. There’s a lot of interesting data in here, and it’s a fascinating collaboration to boot. 

Clickhouse and Ruby Central   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/9d2f7487.png)](https://link.testdouble.com/408b57) 

[Rails Is Super Easy to Upgrade …](https://link.testdouble.com/408b57) — … as long as you're on 6.0 or higher. You don't need to pay a retainer to keep Rails up-to-date, but if you're stuck on Rails 5, 4, or 3, or a custom fork of 2 (we’ve seen it!) you might need help getting over the hump. Ready to enter the 2020s? 

Test Double sponsor   

[Inline RBS Comments Support for Sorbet](https://railsatscale.com/2025-04-23-rbs-support-for-sorbet/) — The story of how engineers at Shopify added support for inline RBS typing comments to the [Sorbet](https://sorbet.org/) static type checker. It’s still experimental but could hugely improve the DX of using types. 

Alexandre Terrasa   

💡 In related news, Jake Zimmerman has an excellent post about [the past, present, and future of Sorbet's type syntax.](https://blog.jez.io/history-of-sorbet-syntax/)  

**IN BRIEF:** 

- Say hello to [Ruby Central's new Executive Director, Shan Cureton!](https://rubycentral.org/news/welcoming-ruby-centrals-new-executive-director-shan-cureton/) She'll be at RailsConf this July.
- Gift Egwuenu gives us [the latest monthly update for the RubyGems project.](https://blog.rubygems.org/2025/04/25/march-rubygems-updates.html)
- 🇷🇴 A reminder that [the CFP for Friendly.rb](https://docs.google.com/forms/d/e/1FAIpQLSfnuWVHIurit8cQ5qCHpESHYAfp7nGviHYXeWbkHWaRXSqUsQ/viewform), taking place this September in Romania, is still open.
- `net-imap` user? There's [a security advisory about a possible DoS vulnerability.](https://rubysec.com/advisories/CVE-2025-43857/) Upgrading is the solution.   

[Creating Beautiful Charts with JRuby and JFreeChart](https://blog.headius.com/2025/04/beautiful-charts-with-jruby-and-jfreechart.html) — One of the biggest wins of using JRuby is the direct access you get to established, mature libraries used in the Java ecosystem. Here’s an example of taking advantage of that by using [JFreeChart](https://www.jfree.org/jfreechart/) to render graphs, but you could use the same technique with many other Java libraries too. 

Charles Oliver Nutter   

🕹️ I took advantage of this feature of JRuby myself many years ago when I [ported one of Notch's Ludum Dare entries](https://github.com/peterc/potc-jruby) from Java to Ruby – it still runs too!  

[Streaming LLM Responses with Rails: SSE vs. Turbo Streams](https://www.aha.io/engineering/articles/streaming-llm-responses-rails-sse-turbo-streams) — If you want to get the results of LLMs into the hands of users ASAP, streaming is the way to go, but in a Rails app there’s more than one way to pull it off.. 

Justin Paulson   

[Sharding a Real Rails App (Mastodon) with PgDog](https://pgdog.dev/blog/sharding-a-real-rails-app) — PgDog is a Postgres proxy server that can be used to shard data and route queries appropriately. 

Leo Kokotov   

[The Ultimate Guide to Scaling Sidekiq](https://judoscale.com/blog/ultimate-guide-scaling-sidekiq?utm_source=ruby-weekly&utm_medium=newsletter&utm_campaign=scaling-sidekiq-diagrams) — Ooooh, pretty diagrams! Yeah I made them myself and I think they’re quite nice. 

Judoscale sponsor   

📄 [Use Getter Methods Instead of Instance Variables in Ruby Objects](https://allaboutcoding.ghinda.com/prefer-getter-methods-over-instance-variables-inside-ruby-objects) Lucian Ghinda 

📄 [Autoscaling on Heroku Fir: Your Options Today in 2025](https://judoscale.com/blog/autoscaling-heroku-fir) – [Fir](https://devcenter.heroku.com/articles/generations#fir) is Heroku’s latest ‘generation’ of its platform/stack. Adam McCrea 

📄 [Improving Rails Migrations Using `bulk: true`](https://www.mintbit.com/blog/improving-rails-migrations-using-bulk-true/) – It groups multiple schema changes into a single SQL statement, where possible. Mintbit 

📄 [Sorting Elegantly in Rails with `in_order_of`](https://thoughtbot.com/blog/sorting-elegantly-in-rails-with-in_order_of) Trésor Bireke 

📄 [Turbo Drive, Frames, Streams, Morph? What to Use?](https://railsdesigner.com/turbo-drive-frame-stream-morph/) Rails Designer 

📄 [Setting Up Rails with Dev Containers](https://www.fastruby.io/blog/setting-up-dev-containers-for-rails.html) Mateus Pereira  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/akeizu0fijn8zxld3jlj.jpg)](https://blog.mattstuchlik.com/2025/04/23/low-overhead-ruby-tracing.html)  

[HUGLO: A Forthcoming Hyper-Ultra-Giga Low-Overhead Tracing Profiler](https://blog.mattstuchlik.com/2025/04/23/low-overhead-ruby-tracing.html) — A tracing profiler that captures function calls, system calls, thread state changes and GC activity with overhead _“low enough for continuous use in large-scale production systems.”_ **It’s not open source yet** but Matt says if there’s enough interest he’ll consider it.. 

Matt Stuchlik   

💡 In the meantime, you might need to keep using[ruby-prof.](https://ruby-prof.github.io/)  

[🚀 Need to Upgrade to Rails 8.0 and Ruby 3.4 but Not Sure How?](https://go.fastruby.io/upgrade-journey) — Your 0-downtime upgrade journey begins with a Roadmap. Know how long it will take before you begin. 

FastRuby.io | Upgrade Services sponsor   

[ruby-mcp-client: An MCP (Model Control Protocol) Client Library](https://github.com/simonx1/ruby-mcp-client) — We’ve recently highlight [Fast MCP](https://github.com/yjacquin/fast-mcp) which provides a way to create [MCP](https://modelcontextprotocol.io/introduction) _servers_ from Ruby – this project provides the other angle, giving you a way to _use_ MCP servers, such as an AI agent would. Even if you don’t use AI, this could provide an interesting alternative to certain APIs. 

Szymon Kurcab   

- [Fast MCP 1.3](https://github.com/yjacquin/fast-mcp) – A Ruby implementation of the Model Context Protocol.
- 🤖 [OmniAI 2.5](https://github.com/ksylvest/omniai) – A standardized API for multiple LLM platforms.
- 📊 [Gruff Graphs 0.26](https://github.com/topfunky/gruff) – Long standing chart rendering library.
- [Torch.rb 0.20](https://github.com/ankane/torch.rb) – Deep learning for Ruby, powered by LibTorch.
- [RQRCode 3.1](https://github.com/whomwah/rqrcode) – Create and render QR codes from Ruby.
- [Good Job 4.10](https://github.com/bensheldon/good_job) – Postgres-backed job queue for Rails.      

📰 Classifieds   

**Your codebase is a masterpiece**. Your logs? Abstract expressionism. Make your data gallery-ready with [Scout Log Management](https://www.scoutapm.com/features/log-management/?utm_content=02-13-2025&utm_medium=cooperpress&utm_source=sponsorship). 

--- 

🧠 It's not always about the size: how we helped a client achieve a shorter cycle time, lower infra costs and an improved communication. [Smart augmentation: it's not always about scaling the team | SINAPTIA](https://sinaptia.dev/posts/smart-augmentation-its-not-always-about-scaling-the-team).    

📢 Elsewhere  

A quick roundup of some other interesting updates or useful resources in the broader developer landscape: 

- [DHH doesn't want](https://world.hey.com/dhh/don-t-make-google-sell-chrome-93cefbc6) Google to be forced to sell its Chrome browser and says it could 'damage the web.'
- [PGlite](https://pglite.dev/) is an interesting WASM build of Postgres so you can embed Postgres wherever you can run WebAssembly.
- I've been dabbling with a little C# recently and enjoyed this [_TypeScript is Like C#_ guide](https://typescript-is-like-csharp.chrlschn.dev/) oriented largely around showing TypeScript/JavaScript vs C# examples of doing the same things.
- If you like the terminal-based life and want a powerful email client that can even support HTML emails, the Go-powered [aerc](https://aerc-mail.org/) is worth a look.
- Former React core team member Dan Abramov has [blogged about React's `'use client'` and `'use server'` directives.](https://overreacted.io/what-does-use-client-do/) While it's about React, he suggests the idea of marking code in this way could be a useful universal paradigm.         

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/).
