Go 语言访问控制库,基于模型与策略文件实现 ACL、RBAC、ABAC 等授权控制。
- Star
- 2,958
- Fork
- 160
- 未关闭 Issue
- 178
- 最近提交
- 昨天
这是什么?
ZenStack 是一个面向全栈或后端 Node.js、Bun 应用的数据库工具包。它采用 schema 优先的方式,兼容 Prisma 的 schema 和查询 API。V3 版本的 ORM 基于 Kysely 构建,开发者既可以使用高层 ORM 查询,也能在需要底层控制时使用类型安全的 Kysely 查询构建器。
项目把访问控制和数据校验直接写进数据模型,权限规则与 schema 放在一起,无需分散在业务代码中。它还能自动生成 CRUD Web 接口,提供适配主流框架的适配器,生成用于前端数据请求的 TanStack Query hooks,并支持生成 Zod schema。
V3 是纯 TypeScript 实现,不依赖 Rust 或 WASM 组件,并支持多态等高级建模模式。
核心功能
- 01兼容 Prisma 的 schema 与查询 API,底层基于 Kysely
- 02在数据模型中内置访问控制和数据校验
- 03自动生成 CRUD Web 接口并提供框架适配器
- 04生成 TanStack Query hooks 用于前端数据访问
- 05生成 Zod schema
- 06纯 TypeScript 实现,不依赖 Rust 或 WASM 组件
适用场景
- 构建需要行级权限规则的全栈 TypeScript SaaS 应用
- 在保留 Prisma 查询 API 的前提下,替换 Node.js 后端中的 Prisma
- 基于数据 schema 快速生成 CRUD 接口和前端 hooks
- 在 ORM 之外使用类型安全的查询构建器处理复杂 SQL
快速上手
- 1
使用 ZenStack 配置脚手架生成新项目
npm create zenstack@latest my-project - 2
或使用 CLI 初始化现有项目
npx @zenstackhq/cli@latest init
使用前须知
- V3 是重写版本,用新的 ORM 引擎替代了 Prisma ORM,可能与早期版本存在差异。
标签
常见问题
- zenstack 是什么?
- 面向 TypeScript 应用的数据层,提供兼容 Prisma 的 ORM、内置访问控制和自动生成的 CRUD 接口。 ZenStack 是一个面向全栈或后端 Node.js、Bun 应用的数据库工具包。它采用 schema 优先的方式,兼容 Prisma 的 schema 和查询 API。V3 版本的 ORM 基于 Kysely 构建,开发者既可以使用高层 ORM 查询,也能在需要底层控制时使用类型安全的 Kysely 查询构建器。
- zenstack 可以免费使用吗?用的什么许可证?
- zenstack 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- zenstack 还在维护吗?
- 活跃维护中。zenstack 最近一次提交是在 2026年11月6日。
- zenstack 适合用来做什么?
- 构建需要行级权限规则的全栈 TypeScript SaaS 应用 在保留 Prisma 查询 API 的前提下,替换 Node.js 后端中的 Prisma 基于数据 schema 快速生成 CRUD 接口和前端 hooks 在 ORM 之外使用类型安全的查询构建器处理复杂 SQL
- zenstack 怎么安装和运行?
- 使用 ZenStack 配置脚手架生成新项目: npm create zenstack@latest my-project 或使用 CLI 初始化现有项目: npx @zenstackhq/cli@latest init
- 在哪里获取 zenstack?
- 源代码和安装说明在 GitHub 上:https://github.com/zenstackhq/zenstack
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2万+6 本周1767GoApache-2.0维护活跃更新于 3天前
受 Google Zanzibar 启发的开源授权服务,用于在应用之外构建细粒度的 RBAC、ReBAC 与 ABAC 权限控制。
5969+1 本周331GoAGPL-3.0维护活跃更新于 昨天
一组可直接运行的 Prisma 示例项目,演示 Prisma ORM 在 Next.js、Express、GraphQL 等框架和多种数据库中的用法。
66511471TypeScriptApache-2.0更新于 前天
轻量级、无头的 TypeScript ORM,支持 PostgreSQL、MySQL 和 SQLite,可运行于 Node.js、Bun、Deno 及边缘运行时。
3.6万+40 本周1765TypeScriptApache-2.0更新于 18小时前
为 Laravel 应用提供基于数据库的用户、角色与权限管理,并接入 Laravel 授权系统。
1.3万+5 本周1815PHPMIT维护活跃更新于 昨天
通用策略引擎,用 Rego 语言编写授权与合规规则,供服务、Kubernetes 等系统调用决策。
1.2万1710GoApache-2.0维护活跃更新于 21小时前