Repolode
ash-project

ash-project/ash

Um framework declarativo e extensível para Elixir, voltado à criação de aplicações com recursos, ações e políticas.

Estrelas
2,540
Forks
463
Issues abertas
104
Último commit
há 13 horas

O que é?

Ash é um framework para criar aplicações em Elixir nas quais você descreve o domínio como recursos: seus atributos, relacionamentos, ações, validações e regras de autorização. A partir dessas declarações, Ash cuida de boa parte da infraestrutura ao redor, permitindo que os desenvolvedores dediquem menos tempo a escrever código repetitivo de acesso a dados e lógica de negócio.

Os recursos são definidos com uma DSL baseada em Spark e agrupados em domínios. Ash oferece suporte a várias camadas de dados, incluindo PostgreSQL por meio do AshPostgres, SQLite por meio do AshSqlite e ETS e Mnesia integrados. Pacotes complementares adicionam JSON:API, GraphQL, autenticação, tarefas em segundo plano com Oban, máquinas de estado, arquivamento e o pacote AshAI, que oferece saídas estruturadas, MCP e vetorização.

O framework se organiza em torno de conceitos explícitos, como ações, políticas de autorização e atores, mantendo o comportamento visível em um só lugar. A documentação do Ash inclui um tutorial para começar, guias por tópico, receitas passo a passo e referências geradas para suas DSLs.

Recursos principais

  • 01Declare recursos com atributos, relacionamentos, ações e validações usando uma DSL.
  • 02Organize recursos em domínios e use várias camadas de dados, como PostgreSQL e SQLite.
  • 03Defina a autorização com políticas e atores.
  • 04Disponibilize APIs por meio de pacotes complementares para JSON:API e GraphQL.
  • 05Adicione autenticação, tarefas em segundo plano, máquinas de estado e arquivamento com pacotes do ecossistema.

Casos de uso

  • Criar uma aplicação web com Phoenix, um modelo de domínio rico e regras de autorização consistentes.
  • Disponibilizar um backend baseado em recursos como serviço JSON:API ou GraphQL.
  • Adicionar tarefas em segundo plano ou máquinas de estado a entidades de negócio existentes.
  • Criar funcionalidades com IA que usem saídas estruturadas ou MCP em uma base de código Elixir.

Tópicos

Perguntas frequentes

O que é ash?
Um framework declarativo e extensível para Elixir, voltado à criação de aplicações com recursos, ações e políticas. Ash é um framework para criar aplicações em Elixir nas quais você descreve o domínio como recursos: seus atributos, relacionamentos, ações, validações e regras de autorização. A partir dessas declarações, Ash cuida de boa parte da infraestrutura ao redor, permitindo que os desenvolvedores dediquem menos tempo a escrever código repetitivo de acesso a dados e lógica de negócio.
ash é gratuito? Qual é a licença?
ash não declara licença. O código é público, mas sem licença você não tem permissão explícita para reutilizá-lo; fale com o autor antes de depender dele.
ash ainda é mantido?
Manutenção ativa. O último commit de ash foi em 22 de out. de 2026.
Para que posso usar ash?
Criar uma aplicação web com Phoenix, um modelo de domínio rico e regras de autorização consistentes. Disponibilizar um backend baseado em recursos como serviço JSON:API ou GraphQL. Adicionar tarefas em segundo plano ou máquinas de estado a entidades de negócio existentes. Criar funcionalidades com IA que usem saídas estruturadas ou MCP em uma base de código Elixir.
Onde consigo ash?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ash-project/ash

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados