casbin-async-sqlalchemy-adapter
Asynchronous SQLAlchemy Adapter for PyCasbin
What it is and what it does
This package bridges PyCasbin's access-control enforcement engine with SQLAlchemy's async ORM, allowing you to store and retrieve authorization policies from a database instead of keeping them in memory or configuration files. It wraps SQLAlchemy's async session management to handle policy persistence transparently, supporting multiple database backends (PostgreSQL, MySQL, SQLite, Oracle, SQL Server, MariaDB, Firebird) through SQLAlchemy's driver ecosystem.
You define your access-control model in a Casbin configuration file, then use this adapter to load policies from a database table and save policy changes back to it. The adapter integrates with async/await workflows, making it suitable for async web frameworks and services. It also supports advanced features like soft deletion (marking records as deleted rather than removing them), external session management for transaction control, and Alembic migration integration for schema management.
Use it for:
- Store RBAC (role-based access control) policies in PostgreSQL or MySQL for a web service, loading them at startup and updating them dynamically.
- Implement soft-deleted audit trails of permission changes by marking policy records as deleted instead of removing them permanently.
- Manage complex ABAC (attribute-based access control) rules in SQLite for a desktop or embedded application with async policy enforcement.
- Integrate policy persistence into an existing Alembic migration workflow to version-control Casbin rule schema changes.
- Use externally managed SQLAlchemy sessions to coordinate policy updates with other database transactions in a single atomic operation.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides an asynchronous SQLAlchemy adapter for PyCasbin, enabling policy-based access control rules to be loaded from and persisted to databases like PostgreSQL, MySQL, SQLite, Oracle, and others.
Yes. The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. Install it if you need to persist Casbin policies in a database and are already using async SQLAlchemy; it is the standard adapter for that use case. Not necessary if you store policies in files or memory.
Install
casbin-async-sqlalchemy-adapter on PyPI
pip
pip install casbin-async-sqlalchemy-adapteruv
uv add casbin-async-sqlalchemy-adapterpoetry
poetry add casbin-async-sqlalchemy-adapterInstalling casbin-async-sqlalchemy-adapter
Before you install
Low friction: pure Python wheel with only two runtime dependencies (SQLAlchemy and pycasbin). Active maintenance with a recent release (2025-12-10) and commits as of 2026-08-06.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; you must include a copy of the license and note any modifications.
Quickstart
pip install casbin-async-sqlalchemy-adapter
import casbin_async_sqlalchemy_adapter
import casbin
adapter = casbin_async_sqlalchemy_adapter.Adapter('sqlite+aiosqlite:///test.db')
e = casbin.AsyncEnforcer('path/to/model.conf', adapter)
if e.enforce("alice", "data1", "read"):
# permit alice to read data1
pass
Requires an async-compatible SQLAlchemy driver (e.g., aiosqlite for SQLite, aiomysql for MySQL) and a Casbin model configuration file.
Verify before relying
- Whether the adapter's soft-deletion and Alembic integration features are production-tested or primarily documented examples.
- Performance characteristics when handling large policy datasets or high-concurrency access patterns.
- Whether external session management is required for optimal transaction control in production deployments.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — SQLAlchemy, pycasbin |
| Maintenance | actively maintained — 247 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 139,864/month — #11,286 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: casbin_async_sqlalchemy_adapter-1.17.0-py3-none-any.whl
Keywords: asynccasbin, SQLAlchemy, casbin-adapter, rbac, access control, abac, acl, permission
Tags
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
casbin-sqlalchemy-adapterConnects PyCasbin access control policies to…
permissive · top 15,000 on PyPI
sqlalchemy-adapterBridges PyCasbin access-control policies with…
permissive · top 5,000 on PyPI
cerbos-sqlalchemyConverts Cerbos authorization query plans into…
permissive · top 15,000 on PyPI
casbinCasbin enforces access control policies (ACL,…
permissive · top 5,000 on PyPI
pycasbinPyCasbin enforces access control policies using…
permissive · top 5,000 on PyPI
fastcrudFastCRUD provides async CRUD operations and…
permissive · top 15,000 on PyPI
databasesProvides async database access for PostgreSQL,…
permissive · top 5,000 on PyPI
sqlalchemy-cockroachdbA SQLAlchemy dialect that enables ORM and SQL…
permissive · top 5,000 on PyPI
advanced-alchemyAdvanced Alchemy provides sync and async…
permissive · top 15,000 on PyPI
dbfreadReads DBF database files (dBase, Visual FoxPro,…
permissive · top 5,000 on PyPI