🕺

RubyのhttpリクエストにはHTTPartyよりhttp.rbが良いかもしれない

2020/11/26に公開

参考リンクから。
https://gitlab.com/gitlab-org/gitlab-foss/-/issues/62692

HTTPartyは非常に使いやすいため、人気のあるrubyのHTTPクライアントgemですが、動作が遅く、多くのリソースを使います。上記のGitLabのイシューでHTTPartyをhttp.rbに置き換えるべきだという議論がされています。

この表はHttp.rb is Great
からの拝借です。10MBのデータをダウンロード及びアップロードしたときのメモリ使用量を計測したものです。

HTTPartyは非常にメモリ使用量が大きく、その一方でhttp.rbのメモリ使用量が小さいです。

https://github.com/httprb/http

同様の結果が本記事冒頭に挙げましたGitLabのissueでも報告されています。

http.rbはシンプルながら非常に扱いやすいインターフェースを持っており、HTTPartyから乗り換えても不便するような点はほとんどありません。ドキュメントも充実しており学習コストも低いです。
https://github.com/httprb/http/wiki

HTTP.rbでGETリクエスト

response = HTTP.get('https://www.google.com')

>> response.to_s
=> "<html><head><meta http-equiv=\"content-type\" content=..."

>> response.code
=> 200

AUTHリクエストを送るのも直感的です。

HTTP.basic_auth(:user => "user", :pass => "pass")
  .get("https://example.com")

理由なくHTTPartyを使っているのであればhttp.rbの導入を検討してみてはいかがでしょう。

Discussion