Repolode
ash-project

ash-project/ash

リソース、アクション、ポリシーを中心としたアプリケーションを構築するための、宣言的で拡張性の高いElixirフレームワーク。

スター
2,540
フォーク
463
未解決の Issue
104
最終コミット
13 時間前

これは何?

Ashは、属性、リレーションシップ、アクション、バリデーション、認可ルールを持つリソースとしてドメインを記述する、Elixirアプリケーション構築用フレームワークです。Ashが宣言内容をもとに周辺の処理の多くを担うため、開発者は定型的なデータアクセスやビジネスロジックのコードを書く時間を減らせます。

リソースはSparkベースのDSLで定義し、ドメインごとにまとめます。Ashは複数のデータレイヤーに対応しており、AshPostgres経由のPostgreSQL、AshSqlite経由のSQLiteに加え、ETSとMnesiaを標準で利用できます。JSON:API、GraphQL、認証、Obanによるバックグラウンドジョブ、ステートマシン、アーカイブ機能を追加する関連パッケージもあります。また、構造化出力、MCP、ベクトル化に対応するAshAIパッケージも用意されています。

このフレームワークは、アクション、認可のためのポリシー、アクターといった明示的な概念を中心に構成されており、振る舞いを一か所で把握できます。Ashには、導入チュートリアル、トピック別ガイド、手順をまとめたレシピ、DSLの自動生成リファレンスが用意されています。

主な機能

  • 01属性、リレーションシップ、アクション、バリデーションをDSLで宣言してリソースを定義する。
  • 02リソースをドメインごとにまとめ、PostgreSQLやSQLiteなど複数のデータレイヤーを利用する。
  • 03ポリシーとアクターを使って認可を定義する。
  • 04JSON:APIやGraphQL向けの関連パッケージを使ってAPIを公開する。
  • 05エコシステムのパッケージを通じて、認証、バックグラウンドジョブ、ステートマシン、アーカイブ機能を追加する。

ユースケース

  • 豊富なドメインモデルと一貫した認可ルールを備えたPhoenix Webアプリケーションを構築する。
  • リソースベースのバックエンドをJSON:APIまたはGraphQLサービスとして公開する。
  • 既存のビジネスエンティティにバックグラウンドジョブやステートマシンを追加する。
  • Elixirのコードベースで構造化出力やMCPを利用するAI機能を開発する。

トピック

よくある質問

ash とは?
リソース、アクション、ポリシーを中心としたアプリケーションを構築するための、宣言的で拡張性の高いElixirフレームワーク。 Ashは、属性、リレーションシップ、アクション、バリデーション、認可ルールを持つリソースとしてドメインを記述する、Elixirアプリケーション構築用フレームワークです。Ashが宣言内容をもとに周辺の処理の多くを担うため、開発者は定型的なデータアクセスやビジネスロジックのコードを書く時間を減らせます。
ash は無料で使えますか?ライセンスは?
ash にはライセンスが明記されていません。コードは公開されていますが、ライセンスがない場合は再利用の許諾がないため、利用前に作者に確認することをおすすめします。
ash は今もメンテナンスされていますか?
活発にメンテナンス中。ash の最終コミットは 2026年10月22日 です。
ash は何に使えますか?
豊富なドメインモデルと一貫した認可ルールを備えたPhoenix Webアプリケーションを構築する。 リソースベースのバックエンドをJSON:APIまたはGraphQLサービスとして公開する。 既存のビジネスエンティティにバックグラウンドジョブやステートマシンを追加する。 Elixirのコードベースで構造化出力やMCPを利用するAI機能を開発する。
ash はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/ash-project/ash

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト