# apache/casbin-node-casbin

An authorization library that supports access control models like ACL, RBAC, ABAC in Node.js and Browser

Repository: https://github.com/apache/casbin-node-casbin
Canonical: https://ross.abutalabs.com/products/casbin-node-casbin
Homepage: https://casbin.org
Language: TypeScript
License: Apache-2.0
License Family: permissive
Topics: casbin, nodejs, node, js, javascript, access-control, authorization, rbac, abac, acl, auth, authz, permission, permissions
Last push: 2026-08-13T06:03:33+00:00

## Health v2 (maintenance only)
Score: 95/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 97, release rhythm 90, longevity 100
- inputs: {"age_days": 2971, "days_push": 20, "days_rel": 69, "gap_med": 12, "n_releases_24m": 24}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2916, forks 230 (observed 2026-08-28T04:07:29.995394+00:00)

## What it is
Node-Casbin is an open-source authorization library for Node.js and Browser that enforces access control based on configurable models such as ACL, RBAC, and ABAC. Policies can be stored in files or databases via adapters, and the same API is shared across Casbin implementations in many languages.

## Use cases
- add role-based access control to a node.js api
- enforce permissions in an express application
- implement abac authorization policies in javascript
- manage user roles and permissions in a web app
- store authorization policies in a database
- share access control logic across node and browser

## When to choose
- you need flexible, model-driven authorization (ACL, RBAC, ABAC) in Node.js or the browser
- you want policies persisted in files or many database backends via adapters
- you want consistent authorization behavior across multiple languages in your stack

## When to avoid
- you only need simple authentication (login/identity) rather than authorization
- you want a fully managed, out-of-the-box authorization service with a UI
- you need features like filtered adapters or batch API that are not fully supported in the Node.js implementation

## Facets
- artifact type: library
- maturity: stable
- function: authorization, auth, middleware
- domain: security, backend, web-development, developer-tools
- platform: browser, cross-platform
- tags: rbac, abac, acl, access-control, policy-enforcement, casbin, permissions, nodejs, typescript

## Member repositories
- apache/casbin-node-casbin (main) score 95

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:29.995394+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:34:05.726959+00:00, confidence not recorded.
  - readme: https://github.com/apache/casbin-node-casbin (fetched 2026-08-28T04:07:29.995394+00:00, sha 849f9ccf199d)
  - homepage: https://casbin.org (fetched 2026-08-29T09:49:48.417094+00:00, sha bf9a21b944e9)
  - site_page: https://casbin.apache.org/docs/category/storage (fetched 2026-08-29T09:49:48.426865+00:00, sha 36570671a14a)
  - site_page: https://casbin.apache.org/docs/adapters (fetched 2026-08-29T09:49:48.428661+00:00, sha cd140120068d)
  - site_page: https://casbin.apache.org/docs/downloads (fetched 2026-08-29T09:49:48.421337+00:00, sha 34577d2c2ff2)
  - site_page: https://casbin.apache.org/docs/get-started (fetched 2026-08-29T09:49:48.423045+00:00, sha 1cef184398ca)
  - site_page: https://casbin.apache.org/docs/category/access-control-models (fetched 2026-08-29T09:49:48.425076+00:00, sha 323b2c9c0a23)
  - site_page: https://casbin.apache.org/docs/overview (fetched 2026-08-29T09:49:48.419445+00:00, sha e6df9330fc66)
  - site_page: https://casbin.apache.org/docs/category/api (fetched 2026-08-29T09:49:48.431043+00:00, sha 4099ba1bb75f)
  - site_page: https://casbin.apache.org/docs/ide-plugins (fetched 2026-08-29T09:49:48.432664+00:00, sha 5a9e92f4f45a)
- Data as of 2026-08-30T08:39:29.467469+00:00.
