Contributor
Yash Pandey

Benchmarking, Python bindings and Migrating to CTest for Casbin-CPP


Mentors
Yang Luo, Divy, Joey
Organization
Casbin

Casbin is an authorization library that extends its features to implement Access Control Lists, Role-Based Access Control, and Attribute-Based Access Control models in various programming languages to its clients. Casbin's Core Engine is written in GoLang. Casbin-CPP has obvious benefits of speed and efficiency compared to its implementation in other languages and thus, benchmarking is vital for the project to stand out from the rest. Python is the most versatile as well as the most used programming language and has huge community support. Casbin-CPP has the potential to support new PyCasbin to compound the benefits of both languages through language bindings and extension libraries. Currently, the project uses Microsoft Unit Testing Framework for C++ for testing and Microsoft’s Azure DevOps pipelines for CI. CTest is truly cross-platform and can be configured using GitHub Actions for consistent and better CI.

Project Ideas are as follows:

  • Modernizing the project with C++17 standard and Google’s benchmarking tool
  • Implement Python bindings for Casbin-CPP using pybind11 library
  • Implement testing based on CTest and set up workflows for Continuous Integration through GitHub Actions