Skip to content

feat: add optional type_definition for user and role prefixes#1731

Open
cooronx wants to merge 1 commit intoapache:masterfrom
cooronx:feat_add_type_definition
Open

feat: add optional type_definition for user and role prefixes#1731
cooronx wants to merge 1 commit intoapache:masterfrom
cooronx:feat_add_type_definition

Conversation

@cooronx
Copy link
Copy Markdown
Contributor

@cooronx cooronx commented May 6, 2026

  [type_definition]
  user = user:
  role = role:
p, role:data2_admin, data2, read
p, role:data2_admin, data2, write
p, user:bob, data2, write
g, user:alice, role:data2_admin

When type_definition is configured, Casbin will:

  • validate type definitions during model loading
  • validate policy mutations and loaded policy lines against the configured user/role prefixes
  • classify principals by type when returning GetAllUsers, GetAllRoles, and
    GetImplicitUsersForPermission

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

Benchmark Comparison

Comparing base branch (12ac0c9)
vs PR branch (6544055)

goos: linux
goarch: amd64
pkg: github.com/casbin/casbin/v3
cpu: AMD EPYC 9V74 80-Core Processor                
                                                 │ base-bench.txt │             pr-bench.txt             │
                                                 │     sec/op     │    sec/op     vs base                      Diff          │
CachedRaw                                          18.40n ± ∞ ¹   18.18n ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.20% ➡️
CachedBasicModel                                   148.8n ± ∞ ¹   156.7n ± ∞ ¹       ~ (p=1.000 n=1) ²         +5.31% ➡️
CachedRBACModel                                    147.9n ± ∞ ¹   146.3n ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.08% ➡️
CachedRBACModelSmall                               154.7n ± ∞ ¹   152.7n ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.29% ➡️
CachedRBACModelMedium                              158.3n ± ∞ ¹   168.6n ± ∞ ¹       ~ (p=1.000 n=1) ²         +6.51% ➡️
CachedRBACModelLarge                               142.5n ± ∞ ¹   146.2n ± ∞ ¹       ~ (p=1.000 n=1) ²         +2.60% ➡️
CachedRBACModelWithResourceRoles                   147.6n ± ∞ ¹   148.7n ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.75% ➡️
CachedRBACModelWithDomains                         156.8n ± ∞ ¹   157.3n ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.32% ➡️
CachedABACModel                                    2.519µ ± ∞ ¹   2.527µ ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.32% ➡️
CachedKeyMatchModel                                164.1n ± ∞ ¹   165.6n ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.91% ➡️
CachedRBACModelWithDeny                            147.5n ± ∞ ¹   149.4n ± ∞ ¹       ~ (p=1.000 n=1) ²         +1.29% ➡️
CachedPriorityModel                                148.2n ± ∞ ¹   150.1n ± ∞ ¹       ~ (p=1.000 n=1) ²         +1.28% ➡️
CachedWithEnforceContext                           210.5n ± ∞ ¹   210.7n ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.10% ➡️
CachedRBACModelMediumParallel                      155.7n ± ∞ ¹   155.6n ± ∞ ¹       ~ (p=1.000 n=1) ²         -0.06% ➡️
HasPolicySmall                                     381.1n ± ∞ ¹   386.5n ± ∞ ¹       ~ (p=1.000 n=1) ²         +1.42% ➡️
HasPolicyMedium                                    381.3n ± ∞ ¹   389.5n ± ∞ ¹       ~ (p=1.000 n=1) ²         +2.15% ➡️
HasPolicyLarge                                     406.1n ± ∞ ¹   419.0n ± ∞ ¹       ~ (p=1.000 n=1) ²         +3.18% ➡️
AddPolicySmall                                     466.1n ± ∞ ¹   459.8n ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.35% ➡️
AddPolicyMedium                                    569.7n ± ∞ ¹   596.6n ± ∞ ¹       ~ (p=1.000 n=1) ²         +4.72% ➡️
AddPolicyLarge                                     1.096µ ± ∞ ¹   1.153µ ± ∞ ¹       ~ (p=1.000 n=1) ²         +5.20% ➡️
RemovePolicySmall                                  437.5n ± ∞ ¹   455.3n ± ∞ ¹       ~ (p=1.000 n=1) ²         +4.07% ➡️
RemovePolicyMedium                                 475.0n ± ∞ ¹   469.3n ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.20% ➡️
RemovePolicyLarge                                  494.1n ± ∞ ¹   520.8n ± ∞ ¹       ~ (p=1.000 n=1) ²         +5.40% ➡️
Raw                                                18.42n ± ∞ ¹   18.17n ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.36% ➡️
BasicModel                                         3.351µ ± ∞ ¹   3.316µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.04% ➡️
RBACModel                                          5.060µ ± ∞ ¹   4.993µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.32% ➡️
RBACModelSizes/small                               44.92µ ± ∞ ¹   43.12µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -4.01% ➡️
RBACModelSizes/medium                              449.7µ ± ∞ ¹   443.8µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.31% ➡️
RBACModelSizes/large                               5.229m ± ∞ ¹   5.318m ± ∞ ¹       ~ (p=1.000 n=1) ²         +1.70% ➡️
RBACModelSmall                                     53.32µ ± ∞ ¹   52.12µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -2.25% ➡️
RBACModelMedium                                    517.9µ ± ∞ ¹   505.4µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -2.41% ➡️
RBACModelLarge                                     5.456m ± ∞ ¹   5.400m ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.03% ➡️
RBACModelWithResourceRoles                         4.087µ ± ∞ ¹   4.113µ ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.64% ➡️
RBACModelWithDomains                               4.740µ ± ∞ ¹   4.707µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -0.70% ➡️
ABACModel                                          2.452µ ± ∞ ¹   2.472µ ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.82% ➡️
ABACRuleModel                                      3.886m ± ∞ ¹   3.916m ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.77% ➡️
KeyMatchModel                                      4.126µ ± ∞ ¹   4.073µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.28% ➡️
RBACModelWithDeny                                  6.380µ ± ∞ ¹   6.347µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -0.52% ➡️
PriorityModel                                      3.848µ ± ∞ ¹   3.842µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -0.16% ➡️
RBACModelWithDomainPatternLarge                    7.339µ ± ∞ ¹   7.387µ ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.65% ➡️
RoleManagerSmall                                   41.68µ ± ∞ ¹   41.75µ ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.17% ➡️
RoleManagerMedium                                  447.5µ ± ∞ ¹   443.5µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -0.89% ➡️
RoleManagerLarge                                   5.385m ± ∞ ¹   5.285m ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.86% ➡️
BuildRoleLinksWithPatternLarge                     252.3m ± ∞ ¹   252.8m ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.20% ➡️
BuildRoleLinksWithDomainPatternLarge               8.284m ± ∞ ¹   8.140m ± ∞ ¹       ~ (p=1.000 n=1) ²         -1.74% ➡️
BuildRoleLinksWithPatternAndDomainPatternLarge     259.8m ± ∞ ¹   260.1m ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.12% ➡️
HasLinkWithPatternLarge                            840.8n ± ∞ ¹   811.2n ± ∞ ¹       ~ (p=1.000 n=1) ²         -3.52% ➡️
HasLinkWithDomainPatternLarge                      326.9n ± ∞ ¹   345.6n ± ∞ ¹       ~ (p=1.000 n=1) ²         +5.72% ➡️
HasLinkWithPatternAndDomainPatternLarge            830.9n ± ∞ ¹   834.5n ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.43% ➡️
ConcurrentHasLinkWithMatching                      1.087µ ± ∞ ¹   1.081µ ± ∞ ¹       ~ (p=1.000 n=1) ²         -0.55% ➡️
geomean                                              4.405µ         4.426µ                                     +0.48% ➡️
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                                                 │ base-bench.txt │             pr-bench.txt              │
                                                 │      B/op      │     B/op       vs base                     Diff          │
CachedRaw                                           0.000 ± ∞ ¹     0.000 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedBasicModel                                    104.0 ± ∞ ¹     104.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedRBACModel                                     104.0 ± ∞ ¹     104.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedRBACModelSmall                                104.0 ± ∞ ¹     104.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedRBACModelMedium                               104.0 ± ∞ ¹     104.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedRBACModelLarge                                96.00 ± ∞ ¹     96.00 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedRBACModelWithResourceRoles                    104.0 ± ∞ ¹     104.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedRBACModelWithDomains                          120.0 ± ∞ ¹     120.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedABACModel                                   1.505Ki ± ∞ ¹   1.500Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.33% ➡️
CachedKeyMatchModel                                 152.0 ± ∞ ¹     152.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedRBACModelWithDeny                             104.0 ± ∞ ¹     104.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedPriorityModel                                 104.0 ± ∞ ¹     104.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedWithEnforceContext                            176.0 ± ∞ ¹     176.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
CachedRBACModelMediumParallel                       104.0 ± ∞ ¹     104.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
HasPolicySmall                                      102.0 ± ∞ ¹     102.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
HasPolicyMedium                                     109.0 ± ∞ ¹     109.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
HasPolicyLarge                                      117.0 ± ∞ ¹     117.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
AddPolicySmall                                      152.0 ± ∞ ¹     152.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
AddPolicyMedium                                     165.0 ± ∞ ¹     165.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
AddPolicyLarge                                      414.0 ± ∞ ¹     429.0 ± ∞ ¹       ~ (p=1.000 n=1) ³        +3.62% ➡️
RemovePolicySmall                                   166.0 ± ∞ ¹     166.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
RemovePolicyMedium                                  173.0 ± ∞ ¹     173.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
RemovePolicyLarge                                   181.0 ± ∞ ¹     181.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
Raw                                                 0.000 ± ∞ ¹     0.000 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
BasicModel                                        1.479Ki ± ∞ ¹   1.477Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.14% ➡️
RBACModel                                         2.036Ki ± ∞ ¹   2.033Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.15% ➡️
RBACModelSizes/small                              19.73Ki ± ∞ ¹   19.64Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.46% ➡️
RBACModelSizes/medium                             187.2Ki ± ∞ ¹   187.2Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        +0.00% ➡️
RBACModelSizes/large                              1.810Mi ± ∞ ¹   1.813Mi ± ∞ ¹       ~ (p=1.000 n=1) ³        +0.17% ➡️
RBACModelSmall                                    19.82Ki ± ∞ ¹   19.77Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.25% ➡️
RBACModelMedium                                   190.0Ki ± ∞ ¹   190.0Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        +0.00% ➡️
RBACModelLarge                                    1.840Mi ± ∞ ¹   1.840Mi ± ∞ ¹       ~ (p=1.000 n=1) ³        +0.00% ➡️
RBACModelWithResourceRoles                        1.829Ki ± ∞ ¹   1.826Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.16% ➡️
RBACModelWithDomains                              1.805Ki ± ∞ ¹   1.801Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.22% ➡️
ABACModel                                         1.496Ki ± ∞ ¹   1.494Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.13% ➡️
ABACRuleModel                                     1.179Mi ± ∞ ¹   1.179Mi ± ∞ ¹       ~ (p=1.000 n=1) ³        +0.00% ➡️
KeyMatchModel                                     1.653Ki ± ∞ ¹   1.648Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.30% ➡️
RBACModelWithDeny                                 2.441Ki ± ∞ ¹   2.438Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.12% ➡️
PriorityModel                                     1.743Ki ± ∞ ¹   1.739Ki ± ∞ ¹       ~ (p=1.000 n=1) ³        -0.23% ➡️
RBACModelWithDomainPatternLarge                   4.383Ki ± ∞ ¹   4.383Ki ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
RoleManagerSmall                                    800.0 ± ∞ ¹     800.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
RoleManagerMedium                                 13.63Ki ± ∞ ¹   13.63Ki ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
RoleManagerLarge                                  224.6Ki ± ∞ ¹   224.6Ki ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
BuildRoleLinksWithPatternLarge                    60.67Mi ± ∞ ¹   60.71Mi ± ∞ ¹       ~ (p=1.000 n=1) ³        +0.07% ➡️
BuildRoleLinksWithDomainPatternLarge              3.940Mi ± ∞ ¹   3.941Mi ± ∞ ¹       ~ (p=1.000 n=1) ³        +0.03% ➡️
BuildRoleLinksWithPatternAndDomainPatternLarge    62.35Mi ± ∞ ¹   62.38Mi ± ∞ ¹       ~ (p=1.000 n=1) ³        +0.05% ➡️
HasLinkWithPatternLarge                             112.0 ± ∞ ¹     112.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
HasLinkWithDomainPatternLarge                       16.00 ± ∞ ¹     16.00 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
HasLinkWithPatternAndDomainPatternLarge             112.0 ± ∞ ¹     112.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
ConcurrentHasLinkWithMatching                       736.0 ± ∞ ¹     736.0 ± ∞ ¹       ~ (p=1.000 n=1) ²        +0.00% ➡️
geomean                                                         ⁴                                              +0.02% ➡️               ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
⁴ summaries must be >0 to compute geomean

                                                 │ base-bench.txt │             pr-bench.txt             │
                                                 │   allocs/op    │  allocs/op    vs base                      Diff          │
CachedRaw                                           0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedBasicModel                                    4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedRBACModel                                     4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedRBACModelSmall                                4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedRBACModelMedium                               4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedRBACModelLarge                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedRBACModelWithResourceRoles                    4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedRBACModelWithDomains                          4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedABACModel                                     18.00 ± ∞ ¹    18.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedKeyMatchModel                                 4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedRBACModelWithDeny                             4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedPriorityModel                                 4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedWithEnforceContext                            4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
CachedRBACModelMediumParallel                       4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
HasPolicySmall                                      4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
HasPolicyMedium                                     4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
HasPolicyLarge                                      5.000 ± ∞ ¹    5.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
AddPolicySmall                                      6.000 ± ∞ ¹    6.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
AddPolicyMedium                                     7.000 ± ∞ ¹    7.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
AddPolicyLarge                                      9.000 ± ∞ ¹    9.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RemovePolicySmall                                   7.000 ± ∞ ¹    7.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RemovePolicyMedium                                  7.000 ± ∞ ¹    7.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RemovePolicyLarge                                   8.000 ± ∞ ¹    8.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
Raw                                                 0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
BasicModel                                          18.00 ± ∞ ¹    18.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RBACModel                                           36.00 ± ∞ ¹    36.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RBACModelSizes/small                                481.0 ± ∞ ¹    481.0 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RBACModelSizes/medium                              4.829k ± ∞ ¹   4.829k ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RBACModelSizes/large                               48.12k ± ∞ ¹   48.20k ± ∞ ¹       ~ (p=1.000 n=1) ³         +0.17% ➡️
RBACModelSmall                                      616.0 ± ∞ ¹    616.0 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RBACModelMedium                                    6.016k ± ∞ ¹   6.016k ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RBACModelLarge                                     60.07k ± ∞ ¹   60.07k ± ∞ ¹       ~ (p=1.000 n=1) ³         +0.00% ➡️
RBACModelWithResourceRoles                          28.00 ± ∞ ¹    28.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RBACModelWithDomains                                26.00 ± ∞ ¹    26.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
ABACModel                                           17.00 ± ∞ ¹    17.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
ABACRuleModel                                      34.08k ± ∞ ¹   34.08k ± ∞ ¹       ~ (p=1.000 n=1) ³         +0.00% ➡️
KeyMatchModel                                       22.00 ± ∞ ¹    22.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RBACModelWithDeny                                   50.00 ± ∞ ¹    50.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
PriorityModel                                       23.00 ± ∞ ¹    23.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RBACModelWithDomainPatternLarge                     39.00 ± ∞ ¹    39.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RoleManagerSmall                                    100.0 ± ∞ ¹    100.0 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RoleManagerMedium                                  1.744k ± ∞ ¹   1.744k ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
RoleManagerLarge                                   19.74k ± ∞ ¹   19.74k ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
BuildRoleLinksWithPatternLarge                     3.560M ± ∞ ¹   3.560M ± ∞ ¹       ~ (p=1.000 n=1) ³         +0.00% ➡️
BuildRoleLinksWithDomainPatternLarge               120.2k ± ∞ ¹   120.2k ± ∞ ¹       ~ (p=1.000 n=1) ³         +0.00% ➡️
BuildRoleLinksWithPatternAndDomainPatternLarge     3.637M ± ∞ ¹   3.637M ± ∞ ¹       ~ (p=1.000 n=1) ³         +0.00% ➡️
HasLinkWithPatternLarge                             9.000 ± ∞ ¹    9.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
HasLinkWithDomainPatternLarge                       1.000 ± ∞ ¹    1.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
HasLinkWithPatternAndDomainPatternLarge             9.000 ± ∞ ¹    9.000 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
ConcurrentHasLinkWithMatching                       11.00 ± ∞ ¹    11.00 ± ∞ ¹       ~ (p=1.000 n=1) ²         +0.00% ➡️
geomean                                                         ⁴                                              +0.00% ➡️               ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
⁴ summaries must be >0 to compute geomean

🤖 This comment will be automatically updated with the latest benchmark results.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant