-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.html
68 lines (65 loc) · 34.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.3">
<title data-rh="true">Casbin · An authorization library that supports access control models like ACL, RBAC, ABAC for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir | Casbin</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://casbin.org/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" name="Casbin" content="An authorization library that supports access control models like ACL, RBAC, ABAC for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir"><meta data-rh="true" property="og:title" content="Casbin · An authorization library that supports access control models like ACL, RBAC, ABAC for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir | Casbin"><meta data-rh="true" name="description" content="An authorization library that supports access control models like ACL, RBAC, ABAC for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir"><meta data-rh="true" property="og:description" content="An authorization library that supports access control models like ACL, RBAC, ABAC for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir"><link data-rh="true" rel="icon" href="/img/favicon.png"><link data-rh="true" rel="canonical" href="https://casbin.org/"><link data-rh="true" rel="alternate" href="https://casbin.org/" hreflang="en"><link data-rh="true" rel="alternate" href="https://casbin.org/zh/" hreflang="zh"><link data-rh="true" rel="alternate" href="https://casbin.org/ko/" hreflang="ko"><link data-rh="true" rel="alternate" href="https://casbin.org/ru/" hreflang="ru"><link data-rh="true" rel="alternate" href="https://casbin.org/fr/" hreflang="fr"><link data-rh="true" rel="alternate" href="https://casbin.org/de/" hreflang="de"><link data-rh="true" rel="alternate" href="https://casbin.org/ja/" hreflang="ja"><link data-rh="true" rel="alternate" href="https://casbin.org/es/" hreflang="es"><link data-rh="true" rel="alternate" href="https://casbin.org/pt/" hreflang="pt"><link data-rh="true" rel="alternate" href="https://casbin.org/uk/" hreflang="uk"><link data-rh="true" rel="alternate" href="https://casbin.org/th/" hreflang="th"><link data-rh="true" rel="alternate" href="https://casbin.org/ar/" hreflang="ar"><link data-rh="true" rel="alternate" href="https://casbin.org/id/" hreflang="id"><link data-rh="true" rel="alternate" href="https://casbin.org/vi/" hreflang="vi"><link data-rh="true" rel="alternate" href="https://casbin.org/it/" hreflang="it"><link data-rh="true" rel="alternate" href="https://casbin.org/ms/" hreflang="ms"><link data-rh="true" rel="alternate" href="https://casbin.org/tr/" hreflang="tr"><link data-rh="true" rel="alternate" href="https://casbin.org/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://6NBEV8TOFK-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("__docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Casbin RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Casbin Atom Feed">
<link rel="preconnect" href="https://www.google-analytics.com">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-8S2TKCJ27X"></script>
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-8S2TKCJ27X",{})</script>
<link rel="search" type="application/opensearchdescription+xml" title="Casbin" href="/opensearch.xml">
<script src="/js/isMainland.js" async></script>
<script src="/js/hotjar.js" async></script>
<script src="/js/probe.js" async></script>
<script src="/js/clarity.js" async></script>
<script src="/js/casibase.js" async></script><link rel="stylesheet" href="/assets/css/styles.27536b97.css">
<link rel="preload" href="/assets/js/runtime~main.c823891f.js" as="script">
<link rel="preload" href="/assets/js/main.5b4b59f3.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(e){}return e}()||function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
<div id="__docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/casbin.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/casbin.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Casbin</b></a><div class="navbar__item dropdown dropdown--hoverable"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/docs/overview">Docs</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/get-started">Get Started</a></li><li><a class="dropdown__link" href="/docs/category/model">Model</a></li><li><a class="dropdown__link" href="/docs/category/storage">Storage</a></li><li><a class="dropdown__link" href="/docs/adapters">Adapters</a></li><li><a class="dropdown__link" href="/docs/category/api">API</a></li><li><a class="dropdown__link" href="/docs/ide-plugins">IDE plugins</a></li><li><a class="dropdown__link" href="/docs/contributing">Start Contributing</a></li></ul></div><a class="navbar__item navbar__link" href="/ecosystem">Ecosystem</a><a class="navbar__item navbar__link" href="/blog">Blog</a><a class="navbar__item navbar__link" href="/help">Help</a><a class="navbar__item navbar__link" href="/editor">Editor</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/ko/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ko">한국어</a></li><li><a href="/ru/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ru">Русский</a></li><li><a href="/fr/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li><li><a href="/ja/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ja">日本語</a></li><li><a href="/es/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/pt/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="pt">Português</a></li><li><a href="/uk/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="uk">Українська</a></li><li><a href="/th/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="th">ไทย</a></li><li><a href="/ar/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ar">العربية</a></li><li><a href="/id/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="id">Indonesia</a></li><li><a href="/vi/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="vi">Tiếng Việt</a></li><li><a href="/it/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="it">Italiano</a></li><li><a href="/ms/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ms">Melayu</a></li><li><a href="/tr/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="tr">Türkçe</a></li><li><hr style="margin: 0.3rem 0;"></li><li><a href="https://crowdin.com/project/casbin-website" target="_blank" rel="noopener noreferrer" class="dropdown__link">Help Us Translate<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><a href="https://github.com/casbin/casbin" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><a href="https://discord.gg/S5UjpzGZjN" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-community-discord"></a><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><header class="hero hero--primary heroBanner_qdFl"><div class="container"><h1 class="hero__title">Casbin</h1><p class="hero__subtitle">An authorization library that supports access control models like ACL, RBAC, ABAC for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir</p><div><a class="button button--secondary button--lg" style="margin-top:1rem;margin-right:3rem;margin-left:3rem" href="/docs/get-started">Get Started</a><div class="buttons_AeoN"><a href="https://github.com/casbin" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/go-logo-1.svg">Golang</a><a href="https://github.com/casbin/jcasbin" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/jee-3.svg">Java</a><a href="https://github.com/casbin/casbin-cpp" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/c.svg">C/C++</a><a href="https://github.com/casbin/node-casbin" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/nodejs-1.svg">Node.js</a><a href="https://github.com/casbin/casbin.js" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/logo-javascript.svg">Front-end js</a><a href="https://github.com/php-casbin/php-casbin" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/PHP-logo.svg">PHP</a><a href="https://github.com/php-casbin/laravel-authz" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/laravel-2.svg">Laravel</a><a href="https://github.com/casbin/pycasbin" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/python-5.svg">Python</a><a href="https://github.com/casbin/Casbin.NET" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/dotnet-logo.svg">.Net (C#)</a><a href="https://github.com/casbin4d/Casbin4D" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/delphi-2.svg">Delphi</a><a href="https://github.com/casbin/casbin-rs" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/rust.svg">Rust</a><a href="https://github.com/CasbinRuby/casbin-ruby" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/ruby.svg">Ruby</a><a href="https://github.com/casbin/SwiftCasbin" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/swift-15.svg">Swift (Objective-C)</a><a href="https://github.com/casbin/lua-casbin" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/lua-5.svg">Lua (OpenResty, Kong, APISIX)</a><a href="https://github.com/casbin/dart-casbin" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/dart.svg">Dart (Flutter)</a><a href="https://github.com/casbin/casbin-ex" target="_blank" rel="noopener noreferrer" class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/elixir-lang-icon.svg">Elixir</a><a class="button button--secondary button--lg" style="margin-top:1rem;margin-right:.5rem;margin-left:.5rem;display:flex" href="/docs/cloud-native"><img class="embedbutton_BUq7" src="https://cdn.casbin.org/language/kubernets.svg">Cloud Native (Kubernetes, Istio, Envoy, KubeSphere)</a></div></div></div></header><main><section class="features_t9lD"><div class="container"><div class="row"><div class="col col--4"><div class="text--center"><img src="/img/model.png" class="featureSvg_GfXr" alt="[object Object]"></div><div class="text--center padding-horiz--md"><h3>Hybrid access control models</h3><p>In Casbin, an access control model is abstracted into a CONF file based on the PERM metamodel (Policy, Effect, Request, Matchers). So switching or upgrading the authorization mechanism for a project is just as simple as modifying a configuration.</p></div></div><div class="col col--4"><div class="text--center"><img src="/img/storage.png" class="featureSvg_GfXr" alt="[object Object]"></div><div class="text--center padding-horiz--md"><h3>Flexible policy storage</h3><p>Besides memory and file, Casbin policy can be stored into lots of places. Currently, dozens of databases are supported, from MySQL, Postgres, Oracle to MongoDB, Redis, Cassandra, AWS S3. Check the full supported list at: <a href="/docs/AdapterData">adapters</a>.</p></div></div><div class="col col--4"><div class="text--center"><img src="/img/language.png" class="featureSvg_GfXr" alt="[object Object]"></div><div class="text--center padding-horiz--md"><h3>Cross-languages & cross-platforms</h3><p>Casbin is implemented in Golang, Java, PHP and Node.js. All implementations share the same API and behaviors. You can learn Casbin once and use it everywhere.</p></div></div></div></div></section><div class="policypersistence_VeHm"><div class="container text--center"><div class="row"><div class="col" style="margin-block:auto"><h3> <!-- -->Policy Persistence</h3>In Casbin, the policy storage is implemented as an adapter(aka middleware for Casbin). To keep light-weight, we don't put adapter code in the main library (except the default file adapter). A complete list of Casbin adapters is provided as below. Any 3rd-party contribution on a new adapter is welcomed, please inform us and I will put it in this list:) For details of adapters, please refer to the documentation: <a href="/docs/adapters">adapters</a>.</div><div style="margin-inline:auto"><img src="/img/store.png" alt="Policy Persistence" width="500" height="500"></div></div></div></div><div class="policyenforcement_aBLo"><div class="container text--center"><div class="row"><div style="margin-inline:auto"><img src="/img/scale.png" alt="Policy enforcement at scale" width="500" height="500"></div><div class="col" style="margin-block:auto"><h3>Policy enforcement at scale</h3>Some adapters support filtered policy management. This means that the policy loaded by Casbin is a subset of the policy in storage based on a given filter. This allows for efficient policy enforcement in large, multi-tenant environments when parsing the entire policy becomes a performance bottleneck.</div></div></div></div><div class="rolemanager_Dhe_"><div class="container text--center"><div class="row"><div class="col" style="margin-block:auto"><h3>Role manager</h3>The role manager is used to manage the RBAC role hierarchy (user-role mapping) in Casbin. A role manager can retrieve the role data from Casbin policy rules or external sources such as LDAP, Okta, Auth0, Azure AD, etc. We support different implementations of a role manager. To keep light-weight, we don't put role manager code in the main library (except the default role manager). A complete list of Casbin role managers is provided as: <a href="/docs/role-managers">role-managers</a> .</div><div style="margin-inline:auto"><img src="/img/role.png" alt="Role manager" width="500" height="500"></div></div></div></div><div class="hero text--center showcase"><div class="container"><h1>Who's using Casbin?</h1><p style="width:50vw;margin:auto">Hundreds of projects are using Casbin, from established Fortune 500 companies to hot new startups.If you're curious to see what can be accomplished Casbin, <a href="/users">check out these apps</a>!</p><br><br><div class="showcaseLogos"><a class="showcaseLogo" href="https://github.com/intel/rmd" target="_blank" rel="noreferrer"><img src="/img/users/intel.png" title="Intel RMD" alt="Intel RMD"></a><a class="showcaseLogo" href="https://github.com/goharbor/harbor" target="_blank" rel="noreferrer"><img src="/img/users/vmware.png" title="Vmware Harbor" alt="Vmware Harbor"></a><a class="showcaseLogo" href="https://docs.docker.com/engine/extend/legacy_plugins/#authorization-plugins" target="_blank" rel="noreferrer"><img src="/img/users/docker.png" title="Docker" alt="Docker"></a><a class="showcaseLogo" href="https://github.com/orange-cloudfoundry/gobis" target="_blank" rel="noreferrer"><img src="/img/users/orange.png" title="Orange Gobis" alt="Orange Gobis"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/openmohan/" target="_blank" rel="noreferrer"><img src="/img/users/cisco.svg" title="Cisco" alt="Cisco"></a><a class="showcaseLogo" href="https://github.com/microsoft/mouselog" target="_blank" rel="noreferrer"><img src="/img/users/microsoft.png" title="Microsoft" alt="Microsoft"></a><a class="showcaseLogo" href="https://github.com/casbin/casbin/pull/56" target="_blank" rel="noreferrer"><img src="/img/users/verizon.png" title="Verizon" alt="Verizon"></a><a class="showcaseLogo" href="https://github.com/dragonflyoss/Dragonfly2/search?q=casbin&type=code" target="_blank" rel="noreferrer"><img src="/img/users/alibaba.png" title="Alibaba" alt="Alibaba"></a><a class="showcaseLogo" href="https://github.com/skydive-project/skydive" target="_blank" rel="noreferrer"><img src="/img/users/redhat.png" title="Redhat" alt="Redhat"></a><a class="showcaseLogo" href="https://github.com/tkestack/tke" target="_blank" rel="noreferrer"><img src="/img/users/tencent.png" title="Tencent" alt="Tencent"></a><a class="showcaseLogo" href="https://github.com/netsec-ethz/" target="_blank" rel="noreferrer"><img src="/img/users/eth.jpg" title="ETH Zurich" alt="ETH Zurich"></a><a class="showcaseLogo" href="https://github.com/tmobile/jazz" target="_blank" rel="noreferrer"><img src="/img/users/t-mobile.png" title="T-Mobile" alt="T-Mobile"></a><a class="showcaseLogo" href="https://loopback.io/doc/en/lb4/migration-auth-access-control-example.html#using-casbin" target="_blank" rel="noreferrer"><img src="/img/users/ibm.png" title="IBM" alt="IBM"></a><a class="showcaseLogo" href="https://github.com/casbin/casbin/issues/299" target="_blank" rel="noreferrer"><img src="/img/users/f5.png" title="F5" alt="F5"></a><a class="showcaseLogo" href="https://github.com/casbin/casbin/issues/302" target="_blank" rel="noreferrer"><img src="/img/users/bose.png" title="Bose" alt="Bose"></a><a class="showcaseLogo" href="https://github.com/r-spacex/SpaceX-API/commit/f8daa8f9878dcd7a281fc8081e3aeb8e5d216089" target="_blank" rel="noreferrer"><img src="/img/users/rspacex.png" title="r/SpaceX" alt="r/SpaceX"></a><a class="showcaseLogo" href="https://www.elastic.co/guide/en/cloud-on-k8s/master/k8s-dependencies.html" target="_blank" rel="noreferrer"><img src="/img/users/elastic.svg" title="Elastic" alt="Elastic"></a><a class="showcaseLogo" href="https://www.linkedin.com/search/results/people/?keywords=casbin%20honeywell" target="_blank" rel="noreferrer"><img src="/img/users/honeywell.png" title="Honeywell" alt="Honeywell"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/raghavbabu" target="_blank" rel="noreferrer"><img src="/img/users/hpe.jpg" title="HPE" alt="HPE"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/peterjotoole" target="_blank" rel="noreferrer"><img src="/img/users/se.png" title="Schneider Electric" alt="Schneider Electric"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/kshitij-rastogi19" target="_blank" rel="noreferrer"><img src="/img/users/siemens.svg" title="SIEMENS" alt="SIEMENS"></a><a class="showcaseLogo" href="https://www.musma.net/" target="_blank" rel="noreferrer"><img src="/img/users/musma.svg" title="Musma" alt="Musma"></a><a class="showcaseLogo" href="https://jdlt.co.uk/" target="_blank" rel="noreferrer"><img src="/img/users/jdlt.svg" title="Jdlt" alt="Jdlt"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/andrew-weng/" target="_blank" rel="noreferrer"><img src="/img/users/360.jfif" title="Jfif" alt="Jfif"></a><a class="showcaseLogo" href="https://github.com/bytebase/bytebase/blob/740afc6286cd855fecc3cc54875583c6b650a41a/server/server.go" target="_blank" rel="noreferrer"><img src="/img/users/bytebase.svg" title="Bytebase" alt="Bytebase"></a><a class="showcaseLogo" href="https://github.com/milvus-io/milvus/blob/d7f38a803d5d23d3e061702e73770cb68aee1dc2/internal/proxy/privilege_interceptor.go" target="_blank" rel="noreferrer"><img src="/img/users/zilliz.png" title="zilliz" alt="zilliz"></a><a class="showcaseLogo" href="https://www.linkedin.com/in/nihalpandit" target="_blank" rel="noreferrer"><img src="/img/users/ontario.jpg" title="Ontario Government" alt="Ontario Government"></a><a class="showcaseLogo" href="https://apachecon.com/acasia2021/sessions/1049.html" target="_blank" rel="noreferrer"><img src="/img/users/pulsar.svg" title="Apache Pulsar" alt="Apache Pulsar"></a></div></div></div><iframe title="Sponsors" src="https://opencollective.com/casbin/banner.html" style="width:100%;height:650px;display:block"></iframe></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/get-started">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/management-api">Management API</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/rbac-api">RBAC API</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/middlewares">Middlewares</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forum.casbin.com/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forum<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://stackoverflow.com/search?q=casbin" target="_blank" rel="noopener noreferrer" class="footer__link-item">Stack Overflow<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/S5UjpzGZjN" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://cdn.casdoor.com/casdoor/resource/built-in/admin/qq_casbin.png" target="_blank" rel="noopener noreferrer" class="footer__link-item">QQ Group<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item">
<a href="https://github.com/casbin/casbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/casbin?label=Casbin&style=social">
</a>
<a href="https://github.com/casbin/jcasbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/jcasbin?label=jCasbin&style=social">
</a>
</li><li class="footer__item">
<a href="https://github.com/casbin/node-casbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/node-casbin?label=Node-Casbin&style=social">
</a>
<a href="https://github.com/php-casbin/php-casbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/php-casbin/php-casbin?label=PHP-Casbin&style=social">
</a>
</li><li class="footer__item">
<a href="https://github.com/casbin/pycasbin" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/pycasbin?label=PyCasbin&style=social">
</a>
<a href="https://github.com/casbin/Casbin.NET" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/Casbin.NET?label=Casbin.NET&style=social">
</a>
</li><li class="footer__item">
<a href="https://github.com/casbin/casbin-cpp" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/casbin-cpp?label=Casbin-CPP&style=social">
</a>
<a href="https://github.com/casbin/casbin-rs" target="_blank">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/casbin-rs?label=Casbin-RS&style=social">
</a>
</li><li class="footer__item">
<a href="https://twitter.com/casbinHQ" target="_blank">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/casbinHQ?style=social">
</a>
</li><li class="footer__item">
<script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?2c0ffc6f8d49e98d964d59d7aa4cbf34";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script>
</li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a class="footerLogoLink_BH7S" href="/"><img src="/img/casbin_min.svg" alt="Casbin Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo"><img src="/img/casbin_min.svg" alt="Casbin Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo"></a></div><div class="footer__copyright">Copyright © 2024 Casbin Organization</div></div></div></footer></div>
<script src="/assets/js/runtime~main.c823891f.js"></script>
<script src="/assets/js/main.5b4b59f3.js"></script>
</body>
</html>