一个鼓励快速开发与简洁务实设计的高级 Python Web 框架。
ash-project/ash
一个声明式、可扩展的 Elixir 应用框架,围绕资源、动作和策略构建应用。
- Star
- 2,540
- Fork
- 463
- 未关闭 Issue
- 104
- 最近提交
- 15小时前
这是什么?
Ash 是一个用于构建 Elixir 应用的框架,开发者通过资源来描述业务领域,包括属性、关系、动作、校验和授权规则。框架会根据这些声明处理大部分重复的数据访问和业务逻辑代码,减少手写样板代码的工作量。
资源基于 Spark DSL 定义,并按领域(domain)组织。Ash 支持多种数据层,其中 AshPostgres 对接 PostgreSQL,AshSqlite 对接 SQLite,ETS 和 Mnesia 为内置支持。生态中的配套包还提供 JSON:API、GraphQL、用户认证、基于 Oban 的后台任务、状态机、资源归档,以及用于结构化输出、MCP 和向量化的 AshAI。
框架围绕动作、授权策略和 actor 等明确的概念展开,让行为逻辑集中可见。项目提供入门教程、主题指南、操作指南以及由源码生成的 DSL 参考文档。
核心功能
- 01通过 DSL 声明资源的属性、关系、动作和校验规则。
- 02将资源组织到领域中,并支持 PostgreSQL、SQLite 等多种数据层。
- 03使用策略和 actor 定义授权逻辑。
- 04通过配套包提供 JSON:API 和 GraphQL 接口。
- 05借助生态包实现用户认证、后台任务、状态机和数据归档。
适用场景
- 构建带有复杂领域模型和统一授权规则的 Phoenix Web 应用。
- 将基于资源的后端以 JSON:API 或 GraphQL 服务的形式对外提供。
- 为现有业务实体添加后台任务或状态机。
- 在 Elixir 项目中实现使用结构化输出或 MCP 的 AI 功能。
收录于专题
标签
常见问题
- ash 是什么?
- 一个声明式、可扩展的 Elixir 应用框架,围绕资源、动作和策略构建应用。 Ash 是一个用于构建 Elixir 应用的框架,开发者通过资源来描述业务领域,包括属性、关系、动作、校验和授权规则。框架会根据这些声明处理大部分重复的数据访问和业务逻辑代码,减少手写样板代码的工作量。
- ash 可以免费使用吗?用的什么许可证?
- ash 没有声明许可证。代码虽然公开,但没有许可证就没有明确的使用授权,正式使用前建议先联系作者。
- ash 还在维护吗?
- 活跃维护中。ash 最近一次提交是在 2026年10月22日。
- ash 适合用来做什么?
- 构建带有复杂领域模型和统一授权规则的 Phoenix Web 应用。 将基于资源的后端以 JSON:API 或 GraphQL 服务的形式对外提供。 为现有业务实体添加后台任务或状态机。 在 Elixir 项目中实现使用结构化输出或 MCP 的 AI 功能。
- 在哪里获取 ash?
- 源代码和安装说明在 GitHub 上:https://github.com/ash-project/ash
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
9.2万3.7万PythonBSD-3-Clause更新于 4小时前
一个语法简洁优雅的 PHP Web 应用框架,内置路由、ORM、迁移、队列和实时广播等功能。
8.5万2.8万Blade无许可证更新于 8天前
Ruby on Rails 是一个基于 MVC 模式的全栈 Web 框架,用于用 Ruby 构建数据库驱动的 Web 应用。
5.9万2.5万RubyMIT更新于 3小时前
基于 Spring 平台的 Java 框架,用于快速构建可投入生产的应用和服务,配置极简。
8.2万4.5万JavaApache-2.0更新于 4小时前
一个面向 TypeScript 和 JavaScript 的渐进式 Node.js 服务端框架,用于构建高效、可扩展的应用。
7.7万8556TypeScriptMIT更新于 8小时前
一个模块化的 Java 应用框架,提供依赖注入、自动配置、Web MVC、Netty 服务和数据访问,设计受 Spring 启发。
13214JavaApache-2.0更新于 10小时前