ACL、RBAC、ABACの認可ポリシーをモデルとポリシーファイルで設定して適用する、Go向けアクセス制御ライブラリ。
zenstackhq/zenstack
Prisma互換ORM、組み込みのアクセス制御、自動生成されるCRUD APIとTanStack Query hooksを備えたTypeScriptデータレイヤー。
代替できる製品:Prisma
- スター
- 2,960
- フォーク
- 160
- 未解決の Issue
- 178
- 最終コミット
- 一昨日
これは何?
ZenStackは、フルスタックまたはバックエンドのNode.js・Bunアプリケーション向けデータベースツールキットです。Prisma互換のスキーマとクエリAPIを使うスキーマファーストのアプローチを採用しています。バージョン3のORMはKyselyをベースとしているため、高水準のORMクエリと、より細かな制御が必要な場合に使える型付きのKyselyクエリビルダーを組み合わせられます。
アクセス制御とデータ検証をデータモデルに直接追加できるため、権限ルールをアプリケーションコードに散在させず、スキーマと一緒に管理できます。また、一般的なフレームワーク向けアダプターを備えたCRUD Web API、フロントエンドでのデータ取得に使うTanStack Query hooks、Zodスキーマも生成できます。
ドキュメントによると、ZenStack V3はRustやWASMのコンポーネントを含まない純粋なTypeScript実装で、ポリモーフィズムなどの高度なモデリングパターンにも対応しています。
主な機能
- 01KyselyをベースにしたPrisma互換のスキーマとクエリAPI
- 02データモデルに組み込まれたアクセス制御とデータ検証
- 03フレームワークアダプターを備えたCRUD Web APIの自動生成
- 04フロントエンドでのデータアクセスに使えるTanStack Query hooksの生成
- 05Zodスキーマの生成
- 06RustやWASMのコンポーネントを含まない純粋なTypeScript実装
ユースケース
- 行レベルの権限ルールが必要なフルスタックTypeScript SaaSアプリの構築
- クエリAPIを維持したまま、Node.jsバックエンドでPrismaを置き換える
- データスキーマからCRUDエンドポイントとフロントエンド用hooksをすばやく公開する
- ORMと並行して、型付きの生クエリを使える手段を追加する
クイックスタート
- 1
ZenStackを設定した新しいプロジェクトをスキャフォールドする
npm create zenstack@latest my-project - 2
または、CLIで既存のプロジェクトを初期化する
npx @zenstackhq/cli@latest init
使う前に知っておきたいこと
- バージョン3は大幅に書き換えられ、Prisma ORMを新しいエンジンに置き換えているため、以前のバージョンとは異なる場合があります。
トピック
よくある質問
- zenstack とは?
- Prisma互換ORM、組み込みのアクセス制御、自動生成されるCRUD APIとTanStack Query hooksを備えたTypeScriptデータレイヤー。 ZenStackは、フルスタックまたはバックエンドのNode.js・Bunアプリケーション向けデータベースツールキットです。Prisma互換のスキーマとクエリAPIを使うスキーマファーストのアプローチを採用しています。バージョン3のORMはKyselyをベースとしているため、高水準のORMクエリと、より細かな制御が必要な場合に使える型付きのKyselyクエリビルダーを組み合わせられます。
- zenstack は無料で使えますか?ライセンスは?
- zenstack は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- zenstack は今もメンテナンスされていますか?
- 活発にメンテナンス中。zenstack の最終コミットは 2026年11月6日 です。
- zenstack は何に使えますか?
- 行レベルの権限ルールが必要なフルスタックTypeScript SaaSアプリの構築 クエリAPIを維持したまま、Node.jsバックエンドでPrismaを置き換える データスキーマからCRUDエンドポイントとフロントエンド用hooksをすばやく公開する ORMと並行して、型付きの生クエリを使える手段を追加する
- zenstack のインストール方法は?
- ZenStackを設定した新しいプロジェクトをスキャフォールドする: npm create zenstack@latest my-project または、CLIで既存のプロジェクトを初期化する: npx @zenstackhq/cli@latest init
- zenstack はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/zenstackhq/zenstack
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Google Zanzibarに着想を得たオープンソースの認可サービス。アプリのコード外で、きめ細かなRBAC、ReBAC、ABACによるアクセス制御を構築できます。
Next.js、Express、GraphQLやさまざまなデータベースでのPrisma ORMの使い方がわかる、すぐに実行できるサンプルプロジェクト集です。
Node.js、Bun、Deno、エッジランタイムで使える、PostgreSQL・MySQL・SQLite対応の軽量なヘッドレスTypeScript ORM。
ユーザー、ロール、権限をデータベースに保存し、LaravelのGateを通じて確認できるLaravelパッケージです。
Regoで認可やコンプライアンスのルールを記述し、サービスやKubernetesなどから評価できる汎用ポリシーエンジンです。