---
title: "The state of Ruby HTTP clients"
publication: "Ruby Weekly"
issue: 674
published_at: "2023-10-19"
canonical_url: "https://rubyweekly.com/issues/674"
---

Plus magic link auth for Rails apps, Postgres goodies in Rails 7.1, and Ruby 3.3's overlap? method. |        

#​674 — October 19, 2023 

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

SUPPORT UKRAINE  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/rnb3xb69n6gxwxlozna9.jpg)](https://github.com/mikker/passwordless)   

[Passwordless 1.0: Magic Link Auth for Rails Apps](https://github.com/mikker/passwordless) — A system to add password-free ‘magic link’ style authentication to your Rails apps. _“This major release .. changes a lot of things and it is almost guaranteed that you will need to change your code to upgrade to this version.”_ Luckily, there’s [an upgrade guide](https://github.com/mikker/passwordless/blob/master/docs/upgrading_to_1_0.md). 

Mikkel Malmberg   

[The State of Ruby HTTP Clients in 2023](https://honeyryderchuck.gitlab.io/2023/10/15/state-of-ruby-http-clients-use-httpx.html) — The creator of [httpx](https://honeyryderchuck.gitlab.io/httpx/) does an extensive survey of the world of Ruby HTTP client libraries, compares their functionality, and concludes that (unsurprisingly?) his is best. Nonetheless, this is a _very_ thorough comparison and worth a look. If you’re short for time, [the feature comparison table](https://honeyryderchuck.gitlab.io/2023/10/15/state-of-ruby-http-clients-use-httpx.html#features) is what you need. 

Tiago Honeyryder   

[Ruvy: A Ruby to WebAssembly Toolchain](https://shopify.engineering/introducing-ruvy) — Built on top of [ruby.wasm](https://github.com/ruby/ruby.wasm), Ruvy is a toolchain that takes Ruby code and creates WebAssembly modules to execute it. This makes it easier to distribute a Ruby program in a way that WASM runtimes (such as [Wasmtime](https://wasmtime.dev/)) can use. 

Jeff Charles (Shopify)    

**IN BRIEF:** 

- 🧵 Koichi Sasada has commited [a M:N thread scheduler for ractors](https://bugs.ruby-lang.org/issues/19842) to Ruby. The main advantage is the potential to create huge numbers of Ruby threads or ractors without needing an equally large number of native threads to handle them.
- 📰 Ruby Central has published [its latest monthly update.](https://rubycentral.org/news/september-2023-monthly-update/) They remind us that [RubyConf 2023](https://rubyconf.org/register) registration is still open, there have been new releases of RubyGems and Bundler, and [they're hard at work upgrading](https://github.com/rubygems/rfcs/pull/52) Rubygems․org from Postgres 11 to 15.
- ❓ Would you like Matz to answer a question for you in his RubyConf 2023 keynote? [Here's your chance](https://rubycentral.org/news/get-your-question-answered-by-matz-at-rubyconf-2023/).
- 🔠 Did you know there's [a GUI Wordle implementation written in Ruby?](https://andymaleh.blogspot.com/2023/10/glimmer-wordle-115.html) It uses the [Glimmer](https://github.com/AndyObtiva/glimmer) framework.    

[Ruby Methods with a (*) Signature](https://stackoverflow.com/q/77320479/3951) — Did you know that `def method_name(*)` is valid code? If not, this is for you – it’s been valid since Ruby 2.7. 

Stack Overflow   

[The Postgres Goodies in Rails 7.1](https://www.crunchydata.com/blog/postgres-goodies-in-ruby-on-rails-7-1) — There are lots of new features on offer for Postgres users, including async queries, composite primary keys, native support for CTEs, unlogged tables, and syntax normalization. 

Christopher Winslett (Crunchy Data)   

[Ruby 3.3 Introduces Range `overlap?` Method](https://www.shakacode.com/blog/ruby-3-3-introduces-range-overlap-method/) — Another Rails method makes it to core (in slightly renamed form) causing the two to…ahem…overlap a bit more…? 

Alkesh Ghorpade   

[Why Is It Sooooo Hard for People to Work Together?](https://link.testdouble.com/bring-people-together) — Most software problems are people problems. We help bring people together to solve tough problems. [Find out more](https://link.testdouble.com/bring-people-together). 

Test Double sponsor   

[Using Rails with SES, SNS and SQS to Avoid High Bounce Rates](https://blog.cloud66.com/using-ses-with-rails) 
Khash Sajadi   

[Better Ways to Customize and Abbreviate `number_to_human`](https://andycroll.com/ruby/customize-abbreviate-number_to_human/) 
Andy Croll   

[Understanding the Instrumentation API in Rails](https://www.akshaykhot.com/rails-instrumentation-api/) 
Akshay Khot   

[Length, Size, and Count: When to Use Which?](https://www.akshaykhot.com/rails-length-size-count-difference/) 
Akshay Khot  

🛠 Code & Tools  

[JRuby 9.4.4.0 Released](https://www.jruby.org/2023/10/18/jruby-9-4-4-0.html) — The latest version of the JVM-oriented Ruby implementation that targets compatibility with Ruby 3.1. Along with the usual bug fixes, Windows on ARM is now fully supported and Java 21 compatibility (including support for vthread fibers) is now baked in. 

The JRuby Team   

[Barley: A Simple and Fast ActiveModel JSON Serializer](https://github.com/moskitohero/barley) — ‘Cereal’-ize (get it?) your ActiveModel objects into flat hashes with a versatile DSL, and with caching baked in. The [latest version](https://github.com/MoskitoHero/barley/blob/main/CHANGELOG.md#v040-2023-10-19) adds a type-checking option to your attributes. 

Cédric Delalande   

[Never Stop Learning and Work #LikeABosch](https://www.bosch.com/careers/why-bosch/growth-and-development/?utm_campaignid=ruby&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=secondary&utm_content=learning) — At Bosch, you always keep growing. Upskill yourself into countless new roles, positions and opportunities. [Learn more](https://www.bosch.com/careers/why-bosch/growth-and-development/?utm_campaignid=ruby&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=secondary&utm_content=learning). 

Bosch sponsor   

[How to Configure Rails and Rack::Attack to Use the Real Client IP When Running Behind Cloudflare](https://gist.github.com/mudge/e5c72d701d7fcbda67608deb800193cb) — A welcome GitHub Gist because while I don’t have this particular problem, I’ve wasted many hours on reverse proxy IP passing issues myself.. 😅 

Paul Mucur   

[Montrose 0.16: A Library for Defining Recurring Events](https://github.com/rossta/montrose) — Provides a composable way to _model_ recurring events. For example, give me every Monday and Thursday of every week between two dates. 

Ross Kaffenberger    

Jobs  

[Find Ruby Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-rubyweekly%29&utm_content=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired      

[JSONb Accessor: Typed `jsonb` Backed Fields for ActiveRecord Models](https://github.com/madeintandem/jsonb_accessor) — This gem goes beyond mere accessors and includes generic scopes for querying JSONB columns, single-table inheritance support, and more. 

Tandem   

- [ruby-vips 2.2](https://github.com/libvips/ruby-vips) – Ruby extension for the `libvips` image processing library.
- [Thor 1.3](https://github.com/rails/thor) – Toolkit for building powerful command-line interfaces.
- [Que 2.3](https://github.com/que-rb/que) – Ruby job queue that uses PostgreSQL's advisory locks.
- [AhoyCaptain 1.1](https://github.com/joshmn/ahoy_captain) – Mountable analytics dashboard for Rails apps.
- [Gemsmith 20.6](https://github.com/bkuhlmann/gemsmith) – CLI tool for smithing gems.
- [Restforce 7.0](https://github.com/restforce/restforce) – Ruby client for Salesforce's API.
- [Simple Form 5.3](https://github.com/heartcombo/simple_form) – Forms made easy for Rails.
- [Stripe Ruby Library v10.0](https://github.com/stripe/stripe-ruby)         

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