Repolode
ash-project

ash-project/ash

Декларативный расширяемый фреймворк для Elixir-приложений, построенных вокруг ресурсов, действий и политик.

Звёзды
2,540
Форки
464
Открытые issues
104
Последний коммит
13 часов назад

Что это?

Ash — это фреймворк для Elixir-приложений, в котором предметная область описывается через ресурсы: их атрибуты, связи, действия, проверки и правила авторизации. На основе этих деклараций Ash берёт на себя значительную часть вспомогательной работы, чтобы разработчики тратили меньше времени на однотипный код для доступа к данным и бизнес-логики.

Ресурсы определяются с помощью DSL на базе Spark и объединяются в домены. Ash поддерживает несколько слоёв данных: PostgreSQL через AshPostgres, SQLite через AshSqlite, а также встроенные ETS и Mnesia. Дополнительные пакеты экосистемы добавляют JSON:API, GraphQL, аутентификацию, фоновые задачи с Oban, машины состояний, архивирование и пакет AshAI для структурированных выходных данных, MCP и векторизации.

В основе фреймворка лежат явные понятия, такие как действия, политики авторизации и акторы: благодаря этому поведение приложения собрано в одном месте и остаётся на виду. В документации Ash есть руководство для начинающих, тематические гайды, практические рецепты и сгенерированная справка по DSL.

Ключевые возможности

  • 01Определяйте ресурсы с атрибутами, связями, действиями и проверками с помощью DSL.
  • 02Объединяйте ресурсы в домены и используйте разные слои данных, например PostgreSQL и SQLite.
  • 03Настраивайте авторизацию с помощью политик и акторов.
  • 04Предоставляйте API через дополнительные пакеты для JSON:API и GraphQL.
  • 05Добавляйте аутентификацию, фоновые задачи, машины состояний и архивирование с помощью пакетов экосистемы.

Сценарии использования

  • Создание веб-приложения на Phoenix с развитой предметной областью и единообразными правилами авторизации.
  • Предоставление бэкенда на основе ресурсов в виде сервиса JSON:API или GraphQL.
  • Добавление фоновых задач или машин состояний к существующим бизнес-сущностям.
  • Создание функций с поддержкой AI на базе структурированных выходных данных или MCP в кодовой базе Elixir.

Темы

Частые вопросы

Что такое ash?
Декларативный расширяемый фреймворк для Elixir-приложений, построенных вокруг ресурсов, действий и политик. Ash — это фреймворк для Elixir-приложений, в котором предметная область описывается через ресурсы: их атрибуты, связи, действия, проверки и правила авторизации. На основе этих деклараций Ash берёт на себя значительную часть вспомогательной работы, чтобы разработчики тратили меньше времени на однотипный код для доступа к данным и бизнес-логики.
ash можно использовать бесплатно? Какая у него лицензия?
У ash не указана лицензия. Код открыт, но без лицензии нет явного разрешения на его использование — уточните у автора, прежде чем на него полагаться.
ash всё ещё поддерживается?
Активно поддерживается. Последний коммит в ash — 22 окт. 2026 г..
Для чего можно использовать ash?
Создание веб-приложения на Phoenix с развитой предметной областью и единообразными правилами авторизации. Предоставление бэкенда на основе ресурсов в виде сервиса JSON:API или GraphQL. Добавление фоновых задач или машин состояний к существующим бизнес-сущностям. Создание функций с поддержкой AI на базе структурированных выходных данных или MCP в кодовой базе Elixir.
Где скачать ash?
Исходный код и инструкции по установке — на GitHub: https://github.com/ash-project/ash

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

PHP-фреймворк для веб-приложений с выразительным синтаксисом: маршрутизация, ORM, миграции, очереди и трансляция событий в реальном времени.

85,2 тыс.27,6 тыс.BladeБез лицензииОбновлён 8 дней назад