この記事は、Elixir Advent Calendar 2024 シリーズ10 の17日目です
昨日は、@t-yamanashi さんで、「Elixirで作る『DDJ-FLX4のジョグ対応ブロックくずし』 その5 対策をする、そしてプロジェクトを3分割で 」 でした
piacere です、ご覧いただいてありがとございます
2024年末の時点で、Elixirにいったい何が出来るのかを紐解いていくシリーズで、前回は「④2024年のクラウドライブラリ編」 でしたが、今回は「⑤2024年のWeb/スマホ/マイクロサービス編」です
hex.pm
の「Recently Created」、もしくは 「Recently Updated」 の今年分で上がっていたWeb/スマホ/マイクロサービス向けライブラリのうち、キャッチーなものを40本、7カテゴリに分けて紹介します
本シリーズの全体像は、下記になります
①2024年の新たなライブラリ/FW編
②2024年に更新されたライブラリ/FW編
③2024年のLivebook+プラグイン編
④2024年のクラウドライブラリ編
⑤2024年のWeb/スマホ/マイクロサービス編
⑥2024年のAI・LLMトレンドから2025年のElixirを占う
⑦2024年末までのElixirができることを振り返る
なお、このコラムが、面白かったり、役に立ったら、 をお願いします
There are 13 Elixir Advent Calendar, making for a hot winter!
Over the past 7 years, Elixir has consistently been a top-ranking language in the programming category of the Advent Calendar, claiming the #1 spot last year. This year, too, Elixir is sure to stay at the top.
We’re feeling the excitement again this year… Please support or subscribe!
https://qiita.com/advent-calendar/2024/elixir
https://qiita.com/advent-calendar/2024/ranking/feedbacks/categories/programming_languages
①Web/スマホ関連
Web/スマホ開発に役立つライブラリ/FWです
なお、初歩的なライブラリは、昨年Web/スマホライブラリコラム、ないしは、BrightのElixirの クラス1 で示しているので、ElixirにおけるWeb/スマホ用ライブラリが初めての方は、これらをご覧いただいてから本コラムを読むと良いかと思います
a)LiveView向けUIコンポーネント系
今年は、LiveView向けのUIコンポーネントが幾つも出てきた豊作の1年でした
LiveInspect
LiveViewでPHPのvar_dumpのようなデータ構造をデバッグ(複数階層にも対応)
Live UI
LiveView用にDB操作のためのCRUD自動生成やページネーション/ソート付きテーブル、高度な検索フォーム、レコードバージョン管理、ダーク/ライトモードの切り替えなど、モダンなアプリ構築のためのポピュラーなUIが揃えられたライブラリ
DataTable
高機能な検索とソート、行選択、ページネータが装備されたデータテーブルコンポーネント
Scrivener Components
Phoenixでページネーターを実現する「scrivener」のLiveComponent版
LiveMotion
LiveView上でスムースなアニメーションを実現するコンポーネント
Plox
LiveView用のSVGプロットコンポーネント
Daisy UI Components
Daisy UIコンポーネント
SaladUI
Reactのshadcn/uiライクなUIコンポーネント
Tremorx
ReactのTremorライクなUIコンポーネント
LiveSelect
動的な絞り込みができるコンボボックスコンポーネント
PhoenixLiveProps
LiveViewにステートを提供するコンポーネント
PhoenixLiveProps
LiveViewにpropsとステートを提供するコンポーネント
PhoenixLiveProps
LiveViewにpropsとスロット、ステート、ステート変化時関数呼出を提供
b)LiveViewと別フロント連携、JSONデータ連携
LiveReact
LiveView内でReactと連携するためのライブラリ
LiveView Responsive
react-responsiveに影響を受けたLiveViewレスポンシブハンドラ
LiveSvelete
LiveView内でSveleteと連携するためのライブラリ
LiveVue
LiveView内でVue.jsと連携するためのライブラリ
LiveData
LiveViewの動的データ生成の反映を伴うJSONデータ返却エンドポイントを簡単に作るライブラリ
LiveAdmin
LiveViewでDB管理UIを提供
②マイクロサービス関連
マイクロサービス構築に役立つライブラリ/FWです
なお、初歩的なWeb/スマホ/マイクロサービス向けライブラリは、昨年マイクロサービスライブラリコラム、ないしは、BrightのElixirの クラス2 および クラス3 で示しているので、Elixirにおけるマイクロサービス用ライブラリが初めての方は、これらをご覧いただいてから本コラムを読むと良いかと思います
c)分散クラスタ系
昨年コラム でも紹介している、ElixirでIPアドレス/DNSベースの分散クラスタ環境(オートスケール対応)を構成する Libcluster の応用系や、その他分散クラスタを実現するライブラリです
Horde
Delta CRDTに基づいて分散ダイナミックスーパーバイザーと分散レジストリを提供するライブラリ
Mnesiac
オートスケール分散Mnesiaを叶えるLibclusterストラテジー
Libcluster EC2
EC2用Libclusterストラテジー
Libcluster Postgres
PostgreSQL用Libclusterストラテジー(Elixirを活用するプロダクト 「Supabase」 で使われている)
ClusterBot
ノードが切断された場合に自動的に再接続(ノード情報はCachex上に保持)し、ノードプールサイズを一定に維持する分散ライブラリ
Distributed Stream
Task.async_streamがローカルマシンでのプロセスプールによるストリーム処理をするのに対し、Distributed Streamはクラスタ上の複数マシン
Shards
ETSテーブルのロック競合をコントロール可とすることでスケールアウトを実現するシャーディング/パーティション
DBCluster
Libcluster等を使わずにオートスケール分散DBを実現するライブラリ
d)オーケストレーション系
Pipeline Flow
業務フローをパイプラインで規定するためのフレームワーク
Kraken
JSON DSLでパイプライン定義とサービス定義ができるフレームワーク
SwarmEx
OpenAIが提唱するマルチエージェントAIオーケストレーションのフレームワーク「Swarm」をElixirで使うためのライブラリ
e)オブザーバビリティ系
ここで紹介した以外のOpenTelemetry関連は、hex
で「opentelemetry」で検索 することでも探せます
O11y
ElixirでのOpenTelemetry利用を便利にするライブラリ
OpenTelemetry LiveView
LiveViewイベントをOpenTelemetryでトラッキング(OpenTelemetryスパンを生成)するためのフック
OpenTelemetry Phoenix
Phoenix挙動をOpenTelemetryでトラッキング(OpenTelemetryスパンを生成)するためのフック
OpenTelemetry Ecto
EctoクエリーをOpenTelemetryでトラッキング(OpenTelemetryスパンを生成)するためのフック
OpenTelemetry Req
Req挙動をOpenTelemetryでトラッキング(OpenTelemetryスパンを生成)するためのフック
OpenTelemetry Telemetry
OpenTelemetryスパンをTelemetryイベントから生成してくれるライブラリ
Aten
適応型障害検知を分散ノードで行うライブラリで、Raft(分散合意アルゴリズム)実装のRa を土台に作られています
f)ビッグデータ系
Csv2Sql
巨大CSVのDBロードを自動化できるライブラリ
Csv2Sql UI
Csv2Sqlを画面上で操作するためのライブラリ
ReqBigquery
Bigquery向けクエリーを簡単に作れるライブラリ
g)QoS系
Hammer
APIリクエストやファイルアップロードにレートリミッターをかけられるライブラリ(ETS/Mnesia/Redisをバックエンドに選択可能)
OffBroadwayMemory
Broadway のプロデューサ側をインメモリで持てるようにするライブラリ
終わりに
次回は、「⑥2024年のAI・LLMトレンドから2025年のElixirを占う」をお送りします
p.s.このコラムが、面白かったり、役に立ったら…
明日は、 私で 「2024年末のElixir⑥2024年のAI・LLMトレンドから2025年のElixirを占う」です