Casbin

Casbin

  • 문서
  • API
  • 편집기
  • IDE Plugins
  • Single Sign-On (SSO)
  • Forum
  • 도움말
  • 블로그
  • Pricing
  • Contact Sales
  • Languages icon한국어
    • English
    • 中文
    • Русский
    • Français
    • Deutsch
    • 日本語
    • 번역 참여하기
  • GitHub

›고급 사용법 (Advanced usage)

기초

  • 개요(Overview)
  • 시작하기
  • 작동 원리
  • 자습서

모델

  • 지원하는 접근 제어 모델
  • 모델(Model) 문법
  • Effector
  • 함수
  • RBAC
  • RBAC with Pattern
  • RBAC + 도메인
  • Casbin RBAC v.s. RBAC96
  • ABAC
  • Priority Model
  • Super Admin

저장소

  • 모델(Model) 저장
  • 정책(Policy) 저장
  • 정책(Policy) 부분 집합 불러오기

확장 기능

  • Enforcers
  • 어댑터
  • 감시자
  • Dispatchers
  • 역할(Role) 관리자
  • 미들웨어
  • GraphQL Middlewares
  • Cloud Native Middlewares

API

  • API Overview
  • Management API
  • RBAC API
  • RBAC with Domains API
  • RoleManager API
  • Data Permissions

고급 사용법 (Advanced usage)

  • 멀티 스레딩
  • 벤치마크
  • Performance Optimization
  • Authorization of Kubernetes
  • Authorization of Service Mesh through Envoy

관리

  • 관리자 포탈
  • Casbin 서비스
  • 로깅 및 오류 처리
  • Frontend Usage

Editor

  • 온라인 편집기
  • IDE Plugins

자세히

  • Casbin 적용 사례
  • Contributing
  • Privacy Policy
  • Terms of Service
Translate

벤치마크

Go
CPP
Lua (JIT)

The overhead of policy enforcement is benchmarked in model_b_test.go. The testbed is:

Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 Core(s), 8 Logical Processor(s)

The benchmarking result of go test -bench=. -benchmem is as follows (op = an Enforce() call, ms = millisecond, KB = kilo bytes):

Test caseRule sizeTime overhead (ms/op)Memory overhead (KB)
ACL2 rules (2 users)0.0154935.649
RBAC5 rules (2 users, 1 role)0.0217387.522
RBAC (small)1100 rules (1000 users, 100 roles)0.16430980.620
RBAC (medium)11000 rules (10000 users, 1000 roles)2.258262765.152
RBAC (large)110000 rules (100000 users, 10000 roles)23.9167767,606
RBAC with resource roles6 rules (2 users, 2 roles)0.0211467.906
RBAC with domains/tenants6 rules (2 users, 1 role, 2 domains)0.03269610.755
ABAC0 rule (0 user)0.0075102.328
RESTful5 rules (3 users)0.04539891.774
Deny-override6 rules (2 users, 1 role)0.0232818.370
Priority9 rules (2 users, 2 roles)0.0163895.313

The overhead of policy enforcement of Casbin CPP is benchmarked in tests/benchmarks directory with the help of Google's benchmarking tool. The testbed for these benchmarks is:

Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz, 4 cores, 4 threads

Here is the benchmarking result of executing casbin_benchmark target built in Release configuration (op = an enforce() call, ms = millisecond):

Test caseRule sizeTime overhead (ms/op)
ACL2 rules (2 users)0.0195
RBAC5 rules (2 users, 1 role)0.0288
RBAC (small)1100 rules (1000 users, 100 roles)0.300
RBAC (medium)11000 rules (10000 users, 1000 roles)2.113
RBAC (large)110000 rules (100000 users, 10000 roles)21.450
RBAC with resource roles6 rules (2 users, 2 roles)0.03
RBAC with domains/tenants6 rules (2 users, 1 role, 2 domains)0.041
ABAC0 rule (0 user)NA
RESTful5 rules (3 users)NA
Deny-override6 rules (2 users, 1 role)0.0246
Priority9 rules (2 users, 2 roles)0.035

Lua Casbin's overhead of policy enforcement is benchmarked in bench.lua. The testbed was a Ubuntu VM with the CPU:

AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 Cores, 12 Threads

The benchmarking result of luajit bench.lua is as follows (op = an enforce() call, ms = millisecond):

Test caseRule sizeTime overhead (ms/op)
ACL2 rules (2 users)0.0533
RBAC5 rules (2 users, 1 role)0.0972
RBAC (small)1100 rules (1000 users, 100 roles)0.8598
RBAC (medium)11000 rules (10000 users, 1000 roles)8.6848
RBAC (large)110000 rules (100000 users, 10000 roles)90.3217
RBAC with resource roles6 rules (2 users, 2 roles)0.1124
RBAC with domains/tenants6 rules (2 users, 1 role, 2 domains)0.1978
ABAC0 rule (0 user)0.0305
RESTful5 rules (3 users)0.1085
Deny-override6 rules (2 users, 1 role)0.1934
Priority9 rules (2 users, 2 roles)0.1437
← 멀티 스레딩Performance Optimization →
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization