A high-performance, flexible authorization/permission engine inspired by Google Zanzibar for fine-grained access control.
OpenFGA is an open-source, high-performance authorization and permission engine that enables developers to implement fine-grained access control in their applications. It solves the problem of managing complex authorization logic by providing a flexible, scalable system inspired by Google Zanzibar. Developers can model relationships and permissions to enforce who can access what resources under which conditions.
Developers and engineering teams building applications that require sophisticated, scalable authorization systems, such as SaaS platforms, enterprise software, or multi-tenant systems.
Developers choose OpenFGA for its high performance, flexible storage backends, and comprehensive SDK support, which simplify implementing and maintaining fine-grained authorization. Its inspiration from Google Zanzibar ensures it handles complex permission models efficiently, making it production-ready and widely adopted.
A high performance and flexible authorization/permission engine built for developers and inspired by Google Zanzibar
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers both HTTP and gRPC interfaces for efficient authorization checks, enabling low-latency evaluations in high-traffic applications.
Supports in-memory, PostgreSQL, MySQL, and SQLite (beta), allowing integration with various existing infrastructure setups.
Includes official SDKs for Java, Node.js, Go, Python, and .NET, plus community tools, easing adoption across different tech stacks.
Provides a CLI, Terraform provider, and an interactive web playground for modeling and testing, streamlining the development process.
MySQL has stricter length limits on tuple properties, and SQLite support is in beta, which may constrain backend choices or reliability.
Requires configuring persistent databases like PostgreSQL for production, as the default in-memory storage is ephemeral and not suitable for live environments.
The playground only connects to local servers, limiting its utility for collaborative or remote development scenarios.