2023年末のElixir①今年出たライブラリ／FW編（最新Elixirのキャッチアップと、アドカレのネタ探しに読んでください）

この記事は、[Elixir Advent Calendar 2023 シリーズ1](https://qiita.com/advent-calendar/2023/elixir) の1日目です

---

[piacere](https://twitter.com/piacere_ex) です、ご覧いただいてありがとございます :bow:
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/905a3a7c-ace7-1e2e-10b8-61eb86e67dab.png)](https://twitter.com/piacere_ex)

2023年末の時点で、Elixirにいったい何が出来るのかを以下の軸で紐解いていくシリーズです

:::note warn
[①2023年の新たなライブラリ／FW編](https://qiita.com/piacerex/items/774dd91c67184bec6df1)
[②2023年に更新されたライブラリ／FW編](https://qiita.com/piacerex/items/0c6ffb235e1146c38302)
[③Elixir本体／Phoenix／LiveView編](https://qiita.com/piacerex/items/8cd483159c93d0f05bd7)
[④Web／スマホ開発ライブラリ編](https://qiita.com/piacerex/items/40ec656513be75a996c0)
[⑤AI・LLM前編【Nx／Bumblebee】](https://qiita.com/piacerex/items/f6a73a8252a3f6093b1a)
[⑥AI・LLM後編【Scholar／Explorer／Evison／EXGBoost】](https://qiita.com/piacerex/items/fd19820bc0befe52b156)
[⑦Livebook＋プラグイン編](https://qiita.com/piacerex/items/bcdcb7bc6c998335a406)
[⑧クラウドライブラリ編](https://qiita.com/piacerex/items/0ce1f05990a502a26ed7)
[⑨マイクロサービスライブラリ編](https://qiita.com/piacerex/items/7e4b15e4dd9a94e58b3b)
[⑩データ操作ライブラリ編](https://qiita.com/piacerex/items/2e19fd1df6ef2d7cf150)
[⑪2023年末までのElixirができることを振り返る](https://qiita.com/piacerex/items/4ef28623d898450c0dcf)
:::

今回は「① 2023年の新たなライブラリ／FW編」ということで、以下2点を扱っていきます

:::note info
- 今年アップデートがあったElixirライブラリ／FW数
- 2023年に初回リリースされたライブラリ／FWの紹介
:::

ここで紹介されているもの以外にも、「ウチでこんな新しめライブラリ使っているよ」とかあれば、ぜひコメントでお知らせください :bow:

なお、プロダクション開発に頻出するものや定番データ操作／クラウド向け／マイクロサービス向けのライブラリ／FWは、続編コラムで別途紹介します

# 2023年にアップデートがあったElixirライブラリ／FW数

[`hex.pm` の「Recently Updated」](https://hex.pm/packages?page=108&sort=updated_at)で数えると、107ページ x 1ページ30本 + 21本で、

:::note warn
<b>全3,231本</b>
:::

となります

なお今年、最初にアップデートされたライブラリ／FWは、「ExFinancialModelingPrep」でした

https://hex.pm/packages/ex_financial_modeling_prep
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/03199917-34ce-7fc4-c4f5-5b11d140a130.png)](https://hex.pm/packages/ex_financial_modeling_prep)

これは、[「Finalcial Modeling Prep」](https://site.financialmodelingprep.com/)という金融サービスのための非公式APIクライアントライブラリです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/b95fd7c5-6a4f-6678-10d6-2b193096af7d.png)

APIクライアントのリファレンスは下記の通りです

Elixirは、CLIである `mix` コマンドから、下図のようなリファレンスを生成でき、OSSであれば、それを [`hex.pm`](https://hex.pm/) のドキュメント公開場である [`hexdocs.pm`](https://hexdocs.pm/) にて公開することができます

https://hexdocs.pm/ex_financial_modeling_prep/
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/8d0c9ad6-6f40-2703-75c2-92707fb4adb6.png)](https://hexdocs.pm/ex_financial_modeling_prep/)

# 2023年に初回リリースされたライブラリ／FW

[`hex.pm` の「Recently Created」の44ページ](https://hex.pm/packages?page=45&sort=inserted_at) x 1ページ30本 + 2023/1/1追加の「xmavlink」までの15本で、

:::note info
<b>1,335本</b>
:::

となります

その中でも、キャッチーなElixirライブラリ／FWを23個、紹介します

## PropEx

今年、書籍が販売されて有名になったプロパティベーステストフレームワーク

https://github.com/portasynthinca3/propex

## DataTable

フィルタ／ソート／ページネータ／複数行操作／行開閉ができる高機能テーブル表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/20d77786-d49a-484d-1a0f-e7e405cc75b2.png)

https://github.com/hansihe/data_table

## PhxMultiSelect

マルチチェックプルダウンLiveComponent
![image.png](https://user-images.githubusercontent.com/272543/214661918-110505f2-e796-40e3-a1ee-47178cb0daba.png)

https://github.com/saleyn/phx-multi-select

## LiveView Click-to-Component

ブラウザ上でキーを押しながらクリックすると該当コードにジャンプ

https://github.com/elixir-saas/click_to_component

## LiveViewNative Flutter

FlutterネイティブアプリをLiveViewで開発できるフレームワーク

https://github.com/alex-min/live_view_native_flutter

## LiveViewNative Swift UI

SwiftネイティブアプリをLiveViewで開発できるフレームワーク

https://github.com/liveview-native/liveview-client-swiftui

## LiveSvelte

JavaScriptフロントライブラリ「Svelte」をLiveViewのデータ連携先にできる
![image.png](https://github.com/woutdp/live_svelte/raw/master/logo.png?raw=true)

https://github.com/woutdp/live_svelte

## Recaptcha

reCAPTCHAパッケージ

https://github.com/samueljseay/recaptcha

## Jellyfish Elixir Server SDK

Membrane（ビデオ会議／動画配信フレームワーク）製メディアサーバー「Jellyfish」のSDK

https://github.com/jellyfish-dev/elixir_server_sdk

## NxSignal

高速フーリエ変換などの信号処理をNxで実現

https://github.com/elixir-nx/nx_signal

## PhoenixReverseProxy

Phoenix製リバースプロキシ

https://github.com/loopsocial/phoenix_reverse_proxy

## ExNgrok

PhoenixアプリケーションにNgrokベースのセキュアなlocalhostトンネルを設置

https://github.com/joshuafleck/ex_ngrok

## PhoenixDDoS

Phoenixに様々なDDoS対策（RateLimit、利用制限間隔、IP制限、Sentry連携など）を入れる

https://github.com/xward/phoenix_ddos

## Orion

分散ノードプロファイラ

https://github.com/LivewareProblems/Orion

## Airbag

パーティショニングも可能なETS製キュー

https://github.com/aerosol/airbag

## Duct

`Ecto.Multi` のようなパイプでデータ構築を叶えるライブラリ

https://github.com/namngh/duct

## Typed

関数の引数／戻り値に型定義できる `deft` を追加

https://github.com/andridus/typed

## Überauth Notion

Notion用Überauth（ソーシャルIDログイン） OAuth2クライアント

https://github.com/jenkinsdev/ueberauth_notion

## PhxGenOidcc

「phx_gen_auth」と似た形式でOpenIDログイン認証を生成する `mix phx.gen.oidcc` を追加

https://github.com/erlef/phx_gen_oidcc

## Genetix

遺伝的アルゴリズムフレームワーク

https://github.com/jsolana/genetix

## Scholar

Python scikit-learn相当の機械学習ライブラリ

https://github.com/elixir-nx/scholar

## EXGBoost

データ分析コンペティション「Kaggle」で上位入賞する「XGBoost」のElixir実装

https://github.com/acalejos/exgboost

# 終わりに

普段、Elixir開発をされている方でも、初見のライブラリ／FWが割とあったのでは無いでしょうか？

年間1,000本を超える新規リリースが行われているElixir OSSに感謝です

[次回は、「② 2023年に更新されたライブラリ／FW編」をお送りします](https://qiita.com/piacerex/items/0c6ffb235e1146c38302)

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/907a8695-4d83-1b5c-8052-d0ce52de5f66.png) にて、どうぞ応援よろしくお願いします :bow: