For a fine-grained authorization engine, the first results are authzed/spicedb, ory/keto and permify/permify. openfga/openfga and google/cel-spec round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Open-source services and frameworks for implementing fine-grained access control based on complex entity relationships.
SpiceDB is a distributed permission store and relationship-based access control system. It provides a scalable database for storing and querying fine-grained authorization relationships, implementing a consistency model inspired by Google Zanzibar to manage access rights across large-scale applications. The system uses a dedicated schema language to define the rules and logic governing how relationships translate into permissions independently of application code. It functions as a pluggable authorization engine that persists relationship tuples in external relational databases such as Postgr
SpiceDB is a distributed permission store and relationship-based access control system directly inspired by Google Zanzibar, offering a dedicated schema language, real-time authorization evaluation, and horizontal scalability—exactly the self-hostable ReBAC service you are looking for.
Ory Keto is an open-source authorization server that implements Google Zanzibar’s relationship-based access control model. It stores every access relationship as a tuple in a SQL database and exposes a declarative TypeScript-like namespace language for defining object types, relations, and permissions. The service provides bidirectional permission resolution, configurable consistency levels for checks, and dual gRPC and REST APIs for broad integration. Keto extends the Zanzibar model with edge enforcement of access policies, structured compliance auditing of permission decisions, and infrastr
Ory Keto is an open-source authorization server that directly implements Google Zanzibar’s relationship-based access control model, offering relationship tuples, a declarative namespace language, bidirectional permission resolution, dual gRPC/REST APIs, and audit logging — precisely the kind of fine-grained ReBAC service you are looking for.
Permify is a Go-based authorization service that implements a Zanzibar-inspired relationship-based access control (ReBAC) model, offering real-time permission evaluation, a flexible schema language, and gRPC alongside REST APIs, making it a comprehensive fit for your fine-grained authorization needs.
OpenFGA is a fine-grained authorization server and policy decision point that implements relationship-based access control. It serves as a centralized authorization service for evaluating access requests and managing relationship tuples across distributed microservices and multi-tenant environments. The engine combines relationship graphs with attribute-based access control, using the Common Expression Language to evaluate dynamic runtime attributes and conditional access rules. It handles complex hierarchies and nested permissions by traversing chains of associations and parent-child links t
OpenFGA is a dedicated fine-grained authorization server that implements the relationship-based (ReBAC) model inspired by Google Zanzibar, offering real-time evaluation of access requests through a relationship graph, a policy DSL using Common Expression Language, and REST/gRPC APIs, with support for audit logging and horizontal scalability, making it a comprehensive fit for your search.
The Common Expression Language specification is a formal standard for a non-Turing-complete expression language designed for safe, portable, and fast logic evaluation. It serves as a cross-language logic standard and a declarative policy language, providing a consistent semantic framework for executing boolean expressions and data transformations across different programming environments. This specification acts as an embedded expression engine that allows applications to integrate portable logic for evaluating user-defined configurations. It is specifically designed to enable safe user-defin
This is a language specification for evaluating boolean expressions and policies, not a self-hostable service that stores a relationship graph and runs real-time authorization checks like a Zanzibar-style ReBAC system.
Casbin is an authorization library that provides a model-based engine for enforcing access control across diverse application environments. It decouples authorization logic from application code by using a configuration-driven approach, allowing developers to define access rules and evaluation logic independently. The system supports a wide range of access control models, including role-based, attribute-based, and relationship-based patterns, which are evaluated at runtime to determine if a subject is permitted to perform an action on a resource. The project distinguishes itself through a hig
Casbin is an authorization library you embed into applications rather than a standalone service—it supports relationship-based models but lacks the dedicated REST/gRPC API and horizontal-scalability built into a Zanzibar-style ReBAC service.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| authzed/spicedb | 6.8K | Go | Apache-2.0 | |
| ory/keto | 5.3K | Go | apache-2.0 | |
| permify/permify | 5.8K | Go | agpl-3.0 | |
| openfga/openfga | 4.8K | Go | apache-2.0 | |
| google/cel-spec | 3.7K | Starlark | apache-2.0 | |
| casbin/casbin | 19.8K | Go | apache-2.0 |