awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
hsluoyz avatar

hsluoyz/casbin

0
View on GitHub↗
20,189 stars·1,743 forks·Go·Apache-2.0·10 viewscasbin.apache.org↗

Casbin

Casbin is an authorization library designed to manage application access control and permissions through a configurable model-based engine. It serves as a centralized system for verifying whether a user has permission to perform specific actions on a resource.

The engine supports multiple access control models, including Role-Based Access Control, Attribute-Based Access Control, and Access Control Lists. It allows for the definition of role hierarchies and the evaluation of user, resource, and environment attributes to make access decisions.

The library decouples authorization logic from data storage via a policy persistence layer, enabling the saving and loading of rules from external databases or files. It supports dynamic policy management to update permissions and role mappings at runtime.

Features

  • Access Control - Verifies user requests against defined permission models to determine if an action is permitted.
  • Authorization Logic - Provides a flexible system to verify if users have permission to perform specific actions on resources.
  • Access Control Models - Supports multiple access control paradigms including ACL, RBAC, and ABAC within a single engine.
  • Attribute-based Access Controls - Controls access to resources based on attributes of the user, the object, and the environment.
  • Access Control and Authorization - Provides a comprehensive library for managing access control and permissions via a model-based engine.
  • Configurable Logic Models - Implements a configurable model-based engine to determine access permissions based on custom logic.
  • Role-Based Access Control - Implements a flexible system for managing user permissions and defining access levels based on assigned roles.
  • Context-Aware Policy Engines - Evaluates user, resource, and environment attributes to make dynamic access decisions.
  • Policy - Implements a persistence layer to save and load authorization rules from external databases or files.
  • Authorization Policy Adapters - Provides a flexible adapter system to persist authorization rules in various databases or files.
  • Centralized Permission Management - Centralizes the definition and persistence of security policies to ensure consistent enforcement.
  • Authorization Policies - Enables saving and loading of authorization rules to external storage for session consistency.
  • Dynamic Policy Refreshers - Allows authorization rules and permissions to be updated in memory without restarting the application.
  • Role Inheritance Resolution - Calculates inherited permissions by traversing a directed graph of role relationships at runtime.
  • Access Control List Management - Defines and enforces access control lists to specify which users can access specific objects.
  • Role-Based Access Management - Organizes structured relationships between users and roles to enable permission inheritance.
  • Authentication and Authorization - Authorization library supporting ACL, RBAC, and ABAC models.
  • Security & Privacy - Library for access control models like RBAC and ABAC.

Star history

Star history chart for hsluoyz/casbinStar history chart for hsluoyz/casbin

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Casbin

Similar open-source projects, ranked by how many features they share with Casbin.
  • casbin/casbincasbin avatar

    casbin/casbin

    19,848View on GitHub↗

    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

    Goabacaccess-controlacl
    View on GitHub↗19,848
  • cerbos/cerboscerbos avatar

    cerbos/cerbos

    4,460View on GitHub↗

    Cerbos is an open-source authorization service that provides a centralized, language-agnostic engine for managing access control. It functions as a policy-as-code platform, allowing teams to define, test, and distribute authorization rules using declarative YAML or JSON configurations. By decoupling access logic from application code, it enables consistent permission enforcement across diverse service stacks. The project distinguishes itself through its ability to translate high-level authorization policies into native database query filters. This capability allows applications to enforce sec

    Goaccess-controlauthorizationgo
    View on GitHub↗4,460
  • openfga/openfgaopenfga avatar

    openfga/openfga

    4,793View on GitHub↗

    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

    Goabacauthorizationentitlements
    View on GitHub↗4,793
  • ryanb/cancanryanb avatar

    ryanb/cancan

    6,212View on GitHub↗

    CanCan is an authorization library for Ruby on Rails applications that provides a declarative framework for defining user permissions. It functions as a role-based access control system that decouples security logic from controllers by centralizing all ability definitions in a single location. The library distinguishes itself by translating permission rules into database-driven filters. This allows the system to retrieve only the specific records a user is permitted to see based on attribute conditions and defined scopes, rather than verifying permissions after data has been loaded. The fram

    Ruby
    View on GitHub↗6,212
See all 30 alternatives to Casbin→

Frequently asked questions

What does hsluoyz/casbin do?

Casbin is an authorization library designed to manage application access control and permissions through a configurable model-based engine. It serves as a centralized system for verifying whether a user has permission to perform specific actions on a resource.

What are the main features of hsluoyz/casbin?

The main features of hsluoyz/casbin are: Access Control, Authorization Logic, Access Control Models, Attribute-based Access Controls, Access Control and Authorization, Configurable Logic Models, Role-Based Access Control, Context-Aware Policy Engines.

What are some open-source alternatives to hsluoyz/casbin?

Open-source alternatives to hsluoyz/casbin include: casbin/casbin — Casbin is an authorization library that provides a model-based engine for enforcing access control across diverse… cerbos/cerbos — Cerbos is an open-source authorization service that provides a centralized, language-agnostic engine for managing… openfga/openfga — OpenFGA is a fine-grained authorization server and policy decision point that implements relationship-based access… ryanb/cancan — CanCan is an authorization library for Ruby on Rails applications that provides a declarative framework for defining… symfony/security — This project is a comprehensive security framework for PHP applications, providing a modular system for verifying user… spatie/laravel-permission — This is a role-based access control system for Laravel applications that manages user permissions and roles within a…