---
title: "Turbocharging Puma with Thruster"
publication: "Ruby Weekly"
issue: 694
published_at: "2024-03-14"
canonical_url: "https://rubyweekly.com/issues/694"
---

Plus an IRB update, working with Hanami, and some Ruby events news. |        

#​694 — March 14, 2024 

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

Together with [![Scout APM\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_1280,h_200/e_make_transparent/co_white,e_outline:12/xqxv1kxso3cmbksqsbt5.png)](https://scoutapm.com/users/sign_up?utm_source=rubyweekly&utm_medium=affiliate&utm_campaign=3_14_24&utm_content=newsletter_ad)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bxtm2dmdxgtpljatcfkl.jpg)](https://dev.37signals.com/thruster-released/)  

[37signals Open Sources _Thruster_](https://dev.37signals.com/thruster-released/) — First seen in Campfire, _Thruster_ is a minimal HTTP/2 proxy for production Rails deployments – it runs alongside Puma and offers HTTP/2, Caching, SSL via LetsEncrypt, and static file serving with compression, filling a similar role to Traefik or Caddy (like them, it’s [written in Go](https://github.com/basecamp/thruster)). 

37signals   

[IRB 1.12.0 Released](https://github.com/ruby/irb/releases/tag/v1.12.0) — One advantage to various parts of Ruby being turned into separate gems is you can upgrade them _without_ upgrading Ruby itself, and IRB is certainly worth upgrading frequently. v1.12 introduces enhancements to the `help` command and IRB can now load `.irbrc` from multiple locations, such as from `~/.irbrc` _as well as_ project specific `.irbrc`s. 

Stan Lo   [![\](https://copm.s3.amazonaws.com/a7fb9e85.png)](https://scoutapm.com/users/sign_up?utm_source=rubyweekly&utm_medium=affiliate&utm_campaign=3_14_24&utm_content=newsletter_ad) 

[Self-Service APM When You Want It. Superior Support When You Need It](https://scoutapm.com/users/sign_up?utm_source=rubyweekly&utm_medium=affiliate&utm_campaign=3_14_24&utm_content=newsletter_ad) — Avoid the runaround of large support teams and the hassle of talking to a sales rep - choose Scout APM and get the APM insights you need in less than 4 minutes. 

Scout APM sponsor   

[Let's Build a Hanami App](https://www.honeybadger.io/blog/build-hanami-app/) — [Hanami](https://hanamirb.org/) is a popular option among Ruby web frameworks lately, and it takes a very different approach, offering less convention and more modularity. 

Aestimo Kirina (Honeybadger)   

- 📅 EuRuKo is Europe's longest running Ruby conference and [EuRuKo 2024](https://2024.euruko.org/) takes place this September in Sarajevo, Bosnia. There's [a CFP open until April 15](https://www.papercall.io/euruko2024), if you'd like to speak.
- 📅 In other events news, [the RailsConf 2024 speakers](https://rubycentral.org/news/a-technical-and-practical-program-railsconf-2024-speakers-announced/) have been announced.
- Last week, we mentioned that DHH was beginning to play with Windows – turns out he's now [decided to _commit_ to Windows](https://world.hey.com/dhh/committing-to-windows-2d6388fd).
- It's great to see Dave Thomas (of _Pragmatic Programmers_ fame) back with [▶️ a 7 minute recollection](https://www.youtube.com/watch?v=c8AzqMr87gQ) of [▶️ his GOTO Amsterdam 2023 talk](https://www.youtube.com/watch?v=qjJ6LvOU7q0) tackling Agile, making decisions in projects, and why to focus on things that are easy to change.
- JetBrains has released [RubyMine 2024.1 Beta](https://blog.jetbrains.com/ruby/2024/03/rubymine-2024-1-beta-is-out/).  

📕 Articles & Tutorials  

[What Does the Frozen String Literal Comment Do?](https://www.writesoftwarewell.com/what-does-frozen-string-literal-do-in-ruby/) — That is: `# frozen_string_literal: true`, as introduced in Ruby 2.3. Frozen strings not only prevent unintended modifications, but reduce garbage collection overhead by eliminating unnecessary memory allocations. 

Akshay Khot   

[Weird Ruby: Double Aliased Enumerable Methods](https://metaredux.com/posts/2024/03/08/weird-ruby-the-double-aliased-enumerable-method.html) — Ruby is big on aliasing methods as a way to make code easier to read and `Enumerable` methods are commonly aliased. Can you think of the method that has _three_ aliases? 

Bozhidar Batsov   

[🌳 Need to Upgrade Ruby on a Tight Budget? Try Bonsai by FastRuby](https://go.fastruby.io/wb1) — Bonsai is the cost-effective way to gradually upgrade your Ruby 2.7 application and [patch security holes](https://go.fastruby.io/kq2)🚀 

Maintenance by FastRuby.io sponsor   

🤖 [Notes from Migrating from Minitest to RSpec (with Help from GitHub Copilot)](https://everydayrails.com/2024/03/13/migrate-minitest-to-rspec-copilot.html) — AI tools like Copilot might not excel at brewing up an entire feature or app, but could they be useful for more boring, predictable tasks like converting from one testing framework to another? 

Aaron Sumner   

[Using dry-validation with Grape](https://gutov.dev/2024/03/12/using-dry-validation-with-grape/) — Grape is an API-only web framework for Ruby and validating incoming requests can turn your Grape into a nice, dry-validation vintage that goes well with just about everything. 

Dmitry Gutov   

[How to Approach a Problem with `reduce`](https://thoughtbot.com/blog/how-to-approach-a-reduce-problem) — Code written with `reduce` can seem intimidating. This two-step approach could help. 

Joël Quenneville   

[Turbo Streaming Modals in Rails](https://blog.appsignal.com/2024/03/13/turbo-streaming-modals-in-ruby-on-rails.html) 
Ayush Newatia   

[How `HEAD` Works in Git](https://jvns.ca/blog/2024/03/08/how-head-works-in-git/) 
Julia Evans  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/uhrcfvn3b0pq1gy39tft.jpg)](https://github.com/amazing-print/amazing_print)  

[Amazing Print 1.6: Pretty Print Your Ruby Objects with Style](https://github.com/amazing-print/amazing_print) — A fork of AwesomePrint that continues to get updates. v1.6 introduces Ruby 3.3 support, has been confirmed to work with Rails 1.7, and offers [hash key colorization](https://github.com/amazing-print/amazing_print/pull/99) and pager support [when used in Pry](https://github.com/amazing-print/amazing_print/pull/96). 

AmazingPrint   

[Free Auth for 1 Million MAUs](https://workos.com/?utm_source=cpruby&utm_medium=newsletter&utm_campaign=q12024) — WorkOS provides easy-to-use APIs for authentication, user identity, and complex enterprise features like SSO and SCIM. 

WorkOS sponsor   

[AnnotateRb 4.6: Add Annotations to Your Rails Models and Route Files](https://github.com/drwl/annotaterb) — A way to add helpful comments summarizing the model schema or routes in your ActiveRecord models, fixture files, test, specs, and other places. 

Andrew W. Lee   

[rrule 0.6: iCalendar RRULE Expansion for Ruby](https://github.com/square/ruby-rrule) — RRULE is a spec for date ‘recurrence rules’ defined as part of the [iCalendar spec.](https://datatracker.ietf.org/doc/html/rfc5545) For example, you can have `FREQ=DAILY;COUNT=3` resolve to dates over the next three days. 

Square   

[Rails Multisite 6.0: Multi Tenancy for Rails Apps](https://github.com/discourse/rails_multisite) — Want each (customer/user) hostname used with an app to have its own database? Extracted from Discourse. 

Sam Saffron   

- [Passwordless 1.5](https://github.com/mikker/passwordless) – Magic link auth for Rails apps.
- [rspec-openapi 0.14](https://github.com/exoego/rspec-openapi) – Make OpenAPI schemas from RSpec request specs.
- [Strong Migrations 1.8](https://github.com/ankane/strong_migrations) – Catch unsafe migrations in dev.
- [Rage 1.0](https://github.com/rage-rb/rage) – HTTP API framework compatible with Rails.
- [Avo 3.5](https://avohq.io/releases/3.5.0) – Rails app building framework/CMS.
- [Minitest 5.22.3](https://www.zenspider.com/releases/2024/03/minitest-version-5-22-3-has-been-released.html)         

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