LoginSignup
7
4

イマドキのオススメ gem on Rails

Last updated at Posted at 2022-03-23

はじめに

※ この文章は永遠のベータ版です。定期的にアップデートする予定。

ググったりQiita / Zenn の記事を見たり、していると、以前は利用者が
そこそこいて開発もアクティブだったものの、今は最早メンテナンスすら
されていない(放置されている)Railsのメジャー・バージョンUP への
追従の怪しい gem が 使われたりしている ので、イマドキのオススメgem
を まとめてみます。

Railsに限らずアプリを開発する際には、利用しようとしている or
しているライブラリの開発・メンテナンスがアクティブかどうか
継続的な開発・メンテナンスが 期待できるか、への注意が必要です。

利用しようとしているorしているライブラリの開発・メンテナンスが
非アクティブ or 開発・メンテナンスの継続性に不安がある なら、
(利用しようとしているなら)そのライブラリの採用を見合わせる or
(利用しているなら)同等の機能を提供する継続的な開発・メンテナンスの
期待できる他のライブラリに移行する、のが無難です。

ログイン認証(クライアント)

名前 オススメ度 アクティブ 備考
Sorcery ✔︎
Devise ✔︎
jwt_sessions ✔︎

Sorcery

Devise

jwt_sessions

ログイン認証プロバイダ

名前 オススメ度 アクティブ 備考
Doorkeeper ✔︎

Doorkeeper

ページング

名前 オススメ度 アクティブ 備考
Pagy ✔︎
Kaminari ✔︎

Pagy

高速&省メモリーなページング・ライブラリ。
Kaminariより高速に動作。

Kaminari

和製ページング・ライブラリ。多機能。

ファイル・アップローダ

名前 オススメ度 アクティブ 備考
Shrine ✔︎
CarrierWave ✔︎
ActiveStorage ✔︎ Rails公式
Paperclip ✖️ 公式は開発終了
Refile ✖️ PRほったらかし

Shrine

CarrierWave・Refileのいいとこ取りな後発アップローダ。オススメ。
CarrierWave・Refileからの移行パスあり。

CarrierWave

老舗アップローダ。設計に(やや?)古い感あり。老舗ゆえの安心感?で、
広く利用されている。

ActiveStorage

Railsビルトインのアップローダ。

(一時)ファイルのキャッシュ機能がないので、アップロードしたファイル
のDBでの永続化前の事前プレビューを行いたいケースでは、ダイレクト・
アップロード(JSを介してアプリのバックエンドをバイパスし、クラウド・
ストレージに直接アップロードする)機能を利用することになります、
ダイレクト・アップロード機能はアプリの設計によって(アプリのバック
エンドでアップロード時にアップロードしたファイルの加工etcを行いたい
場合etc)は採用できません。デフォルトでは、ファイル・アップロードを
含むフォームでのバリデーションエラー時にファイルの再アップロードが
必要になるので、注意が必要です。

Paperclip

CarrierWave と双璧をなしていたアップローダ。

ActiveStorage のリリースに伴い、開発終了。

有志によるメンテナンスは存在しますが、新規開発のプロジェクトで
採用してはいけません。

Refile

CarrierWave の原作者が、一時期、後継としてスクラッチから開発
していた アップローダ。

ActiveStorageのリリース(CarrierWaveからの移行パスが用意されて
おらず、移行が進まなかったことも?)により?原作者が意欲を失い、
開発が停滞。

現在、メンテナンスを引き継いだ?メンテナも関心を失い、放置中。
Ruby3 / Rails7 以降への対応は期待できない。

JSONシリアライザ

名前 オススメ度 アクティブ 備考
Alba ✔︎
JSON:API Serialization Library ✔︎ JSON:API対応
Jb ✔︎
Jbuilder ✔︎
BluePrinter ✖️
ActiveModelSerializers ✖️

Alba

後発の和製JSONシリアライザ、高速な?シリアライズが特徴。

JSON:API Serialization Library

JSON:API(仕様)に対応し、高速なシリアライズが特徴の、
JSONシリアライザ。

Netflixの開発していた Fast JSON API が開発・メンテナンスを
終了したので、有志により fork され、開発・メンテナンスが継続中。

JSON:API(仕様)にしか対応していないのが難点。

現在、メンテナンスモード。

Jb

和製JSONシリアライザ、高速なシリアライズが特徴。
jbuilderのオルタナティブで、複雑なJSONの組み立てには不向き。
jbuilderよりシンプルに記述できる。

Jbuilder

RailsビルトインのJSONシリアライザ。低速。
記述に用いるDSLにクセがある。
複雑なJSONの組み立てには不向き。

BluePrinter

JSONシリアライザ、クセがある、DSLにJSONの構造とは直接
関係しない view がある、等。

開発・メンテナンス、アナウンスはないものの、終了している。
(PRは放置ぎみ。メンテナによりコメントされている場合あり。)

ActiveModelSerializers (AMS)

老舗のJSONシリアライザ。コードベースが大きくて複雑なため、低速。
(Jbuilderよりは高速に動作。)

開発・メンテナンス、アナウンスはないものの、終了している。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4