Repolode
ash-project

ash-project/ash

Framework declarativo y extensible de Elixir para crear aplicaciones basadas en recursos, acciones y políticas.

Estrellas
2,540
Forks
463
Issues abiertos
104
Último commit
hace 13 horas

¿Qué es?

Ash es un framework para crear aplicaciones de Elixir en el que se describe el dominio mediante recursos: sus atributos, relaciones, acciones, validaciones y reglas de autorización. A partir de esa declaración, Ash se encarga de gran parte del trabajo de infraestructura, para que los desarrolladores dediquen menos tiempo a escribir código repetitivo de acceso a datos y lógica de negocio.

Los recursos se definen con un DSL basado en Spark y se agrupan en dominios. Ash admite varias capas de datos, como PostgreSQL mediante AshPostgres, SQLite mediante AshSqlite y ETS y Mnesia de forma integrada. Los paquetes complementarios añaden JSON:API, GraphQL, autenticación, tareas en segundo plano con Oban, máquinas de estados, archivado y un paquete AshAI para salidas estructuradas, MCP y vectorización.

El framework se organiza en torno a conceptos explícitos, como las acciones, las políticas de autorización y los actores, lo que permite mantener el comportamiento visible en un mismo lugar. La documentación de Ash incluye un tutorial para empezar, guías temáticas, recetas prácticas y referencias generadas para sus DSL.

Funciones clave

  • 01Definir recursos con atributos, relaciones, acciones y validaciones mediante un DSL.
  • 02Organizar recursos en dominios y usar varias capas de datos, como PostgreSQL y SQLite.
  • 03Definir la autorización mediante políticas y actores.
  • 04Exponer APIs con paquetes complementarios para JSON:API y GraphQL.
  • 05Añadir autenticación, tareas en segundo plano, máquinas de estados y archivado mediante paquetes del ecosistema.

Casos de uso

  • Crear una aplicación web con Phoenix, un modelo de dominio rico y reglas de autorización coherentes.
  • Exponer un backend basado en recursos como servicio JSON:API o GraphQL.
  • Añadir tareas en segundo plano o máquinas de estados a entidades de negocio existentes.
  • Crear funcionalidades con IA que usen salidas estructuradas o MCP en una base de código de Elixir.

Temas

Preguntas frecuentes

¿Qué es ash?
Framework declarativo y extensible de Elixir para crear aplicaciones basadas en recursos, acciones y políticas. Ash es un framework para crear aplicaciones de Elixir en el que se describe el dominio mediante recursos: sus atributos, relaciones, acciones, validaciones y reglas de autorización. A partir de esa declaración, Ash se encarga de gran parte del trabajo de infraestructura, para que los desarrolladores dediquen menos tiempo a escribir código repetitivo de acceso a datos y lógica de negocio.
¿ash es gratuito? ¿Qué licencia tiene?
ash no declara ninguna licencia. Su código es público, pero sin licencia no tienes permiso explícito para reutilizarlo; consulta al autor antes de depender de él.
¿ash sigue mantenido?
Mantenimiento activo. El último commit de ash fue el 22 oct 2026.
¿Para qué puedo usar ash?
Crear una aplicación web con Phoenix, un modelo de dominio rico y reglas de autorización coherentes. Exponer un backend basado en recursos como servicio JSON:API o GraphQL. Añadir tareas en segundo plano o máquinas de estados a entidades de negocio existentes. Crear funcionalidades con IA que usen salidas estructuradas o MCP en una base de código de Elixir.
¿Dónde consigo ash?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ash-project/ash

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados