Skip to content


Repository files navigation


GitHub Action Coverage Status Discord

casbin-adapter is a LuaSQL based adapter for Casbin that supports policies from SQL-based databases (MySQL, PostgreSQL, SQLite3).


First, install the corresponding driver of LuaSQL from LuaRocks based on the database you use:

  • For MySQL, install luasql-mysql.
  • For PostgreSQL, install luasql-postgres.
  • For SQLite3, install luasql-sqlite3.

Then install the casbin-adapter from LuaRocks by

sudo luarocks install


To create a new Casbin Enforcer using a MySQL adapter, use:

local Enforcer = require("casbin")
local Adapter = require("casbin.mysql")

local a = Adapter:new(database, user, password, hostname, port) -- hostname, port are optional
local e = Enforcer:new("/path/to/model.conf", a) -- creates a new Casbin enforcer with the model.conf file and the database

For other adapters, replace local Adapter = require("casbin.mysql") with:

  • local Adapter = require("casbin.postgres") for PostgreSQL adapter.
  • local Adapter = require("casbin.sqlite3") for SQLite3 adapter. In SQLite3 adapter, only database field is required and others are optional.

Getting Help


This project is under Apache 2.0 License. See the LICENSE file for the full license text.