Высокоуровневый веб-фреймворк для Python, который помогает быстро разрабатывать приложения с чистой и практичной архитектурой.
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, миграции, очереди и трансляция событий в реальном времени.
Ruby on Rails — полнофункциональный MVC-фреймворк для создания веб-приложений на Ruby с базой данных.
Мнение-ориентированный Java-фреймворк для создания готовых к эксплуатации приложений и сервисов на Spring с минимальной настройкой.
Прогрессивный фреймворк для Node.js, позволяющий создавать эффективные и масштабируемые серверные приложения на TypeScript или JavaScript.
Модульный фреймворк для Java с внедрением зависимостей, автоконфигурацией, Web MVC, HTTP-сервером на Netty и средствами доступа к данным, вдохновлённый Spring.