stalniy/casl

CASL is an isomorphic authorization JavaScript library which restricts what resources a given user is allowed to access

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 23 minutes ago
Added to GitGenius on September 9th, 2026
Created on July 18th, 2017
Open Issues & Pull Requests: 14 (+0)
GitHub issues: Enabled
Number of forks: 301
Total Stargazers: 7,065 (+0)
Total Subscribers: 40 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 3.5 hours
Mean response time: 33.4 days
90th percentile: 85.9 days
Tracked items: 59

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 9% of issues opened in the past year have been closed. Three people close 92% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 6
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,151 days
Stale 30+ days: 5
Stale 90+ days: 5

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (24)
  • enhancement (21)
  • unconfirmed (4)
  • wontfix (4)
  • question (2)
  • docs (1)
  • help wanted (1)
  • maintenance (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

CASL is an isomorphic authorization JavaScript library that restricts what resources a given user is allowed to access.

CASL solves the problem of managing permissions consistently across frontend and backend environments. It works by defining abilities—rules that specify what actions a user can perform on particular resources. The library operates on a flexible model that scales from simple claim-based authorization to fully featured subject and attribute-based access control. Rules are declarative, making them serializable and shareable between UI components, API services, and database queries.

CASL suits projects that need authorization logic spanning multiple layers of an application. It is particularly valuable when you want to avoid duplicating permission logic across frontend frameworks and backend services. The core library is lightweight at 6KB minified and gzipped, and the project provides complementary packages for integration with major frameworks including React, Angular, and Vue, as well as ORMs like Mongoose and Prisma. The library is TypeScript-based, offering type safety for authorization rules.

The project maintains active engagement with its community through a dedicated support chat and documentation site. Development activity shows consistent attention to ecosystem integration, with maintained packages for multiple frontend frameworks and backend ORMs. The maintainers prioritize backward compatibility and incremental adoptability, allowing teams to start with simple permission schemes and evolve toward more complex authorization models as needs grow.