7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ElixirAdvent Calendar 2024

Day 17

2024年のElixir⑤Web/スマホ/マイクロサービス編(最新Elixirのキャッチアップや、アドカレのネタ探しに読んでください)

Last updated at Posted at 2024-12-17

この記事は、Elixir Advent Calendar 2024 シリーズ10 の17日目です

昨日は、@t-yamanashi さんで、「Elixirで作る『DDJ-FLX4のジョグ対応ブロックくずし』 その5 対策をする、そしてプロジェクトを3分割で 」 でした


piacere です、ご覧いただいてありがとございます :bow:

2024年末の時点で、Elixirにいったい何が出来るのかを紐解いていくシリーズで、前回は「④2024年のクラウドライブラリ編」 でしたが、今回は「⑤2024年のWeb/スマホ/マイクロサービス編」です

hex.pm「Recently Created」、もしくは 「Recently Updated」 の今年分で上がっていたWeb/スマホ/マイクロサービス向けライブラリのうち、キャッチーなものを40本、7カテゴリに分けて紹介します

本シリーズの全体像は、下記になります

なお、このコラムが、面白かったり、役に立ったら、image.png をお願いします :bow:

:xmas-tree: There are 13 Elixir Advent Calendar, making for a hot winter! :xmas-tree:

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! :bow:

https://qiita.com/advent-calendar/2024/elixir
https://qiita.com/advent-calendar/2024/ranking/feedbacks/categories/programming_languages
image.png

①Web/スマホ関連

Web/スマホ開発に役立つライブラリ/FWです

なお、初歩的なライブラリは、昨年Web/スマホライブラリコラム、ないしは、BrightのElixirの クラス1 で示しているので、ElixirにおけるWeb/スマホ用ライブラリが初めての方は、これらをご覧いただいてから本コラムを読むと良いかと思います

image.png

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におけるマイクロサービス用ライブラリが初めての方は、これらをご覧いただいてから本コラムを読むと良いかと思います

image.png

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

image.png

Csv2Sqlを画面上で操作するためのライブラリ

ReqBigquery

Bigquery向けクエリーを簡単に作れるライブラリ

g)QoS系

Hammer

APIリクエストやファイルアップロードにレートリミッターをかけられるライブラリ(ETS/Mnesia/Redisをバックエンドに選択可能)

OffBroadwayMemory

Broadway のプロデューサ側をインメモリで持てるようにするライブラリ

終わりに

次回は、「⑥2024年のAI・LLMトレンドから2025年のElixirを占う」をお送りします

p.s.このコラムが、面白かったり、役に立ったら…

image.png にて、どうぞ応援よろしくお願いします :bow:


明日は、 私で 「2024年末のElixir⑥2024年のAI・LLMトレンドから2025年のElixirを占う」です

7
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?