Passer au contenu principal

Contribuer

Casbin is a powerful authorization library that supports access control models with implementations in many programming languages. If you are proficient in any programming language, you can contribute to the development of Casbin. New contributors are always welcome.

Currently, there are two main types of projects:

  • Algorithms-oriented projects - These projects involve implementing algorithms in different programming languages. Casbin supports a wide range of languages, including Golang, Java, C++, Elixir, Dart, and Rust, along with their related products.
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Production-readyProduction-readyProduction-readyProduction-ready
pythondotnetc++rouille
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Production-readyProduction-readyProduction-readyProduction-ready
  • Application-oriented projects - These projects are related to applications built on top of Casbin.
ProjetDémoDétails du produitSkill Stacks
Porte de caisseCasdoorCasdoor is a UI-first centralized authentication/Single-Sign-On (SSO) platform based on OAuth 2.0/OIDC.JavaScript + React et Golang + Beego + SQL
CasnodeForum de CasbinCasnode is a next-generation forum software.JavaScript + React et Golang + Beego + SQL
Casbin OAOA systemCasbin-OA is an official manuscript processing, evaluation, and display system for Casbin technical writers.JavaScript + React et Golang + Beego + MySQL
Casbin EditorCasbin EditorCasbin-editor is a web-based editor for Casbin models and policies.TypeScript + React

Getting Involved​

There are many ways to contribute to Casbin. Here are some ideas to get started:

  • Use Casbin and report issues! When using Casbin, report any issues you encounter to help promote the development of Casbin. Whether it's a bug or a proposal, filing an issue on GitHub is recommended. However, it would be better to have a discussion first on Discord or GitHub Discussions before filing an issue.

    Note: When reporting an issue, please use English to describe the details of your problem.

  • Help with documentation! Contributing to the documentation is a good starting point for your contribution.

  • Help solve issues! We have prepared a table containing easy tasks suitable for beginners, with different levels of challenges labeled with different tags. You can check the table here.

Demandes de tirage​

Casbin uses GitHub as its development platform, so pull requests are the main way to contribute.

Before opening a pull request, there are a few things you need to know:

  • Explain why you are sending the pull request and what it will do for the repository.

  • Make sure the pull request does only one thing. If there are multiple changes, please split them into separate pull requests.

  • If you are adding new files, please include the Casbin license at the top of the new file(s).

    // Copyright 2021 The casbin Auteurs. Tous droits réservés.
    //
    // Sous licence Apache, Version 2. (la "Licence");
    // vous ne pouvez pas utiliser ce fichier sauf en conformité avec la Licence.
    // Vous pouvez obtenir une copie de la licence à
    //
    // http://www.apache.org/licenses/LICENSE-2.
    //
    // Sauf disposition de la loi applicable ou convenue par écrit, le logiciel
    // distribué sous la Licence est distribué sur une base "TEL QUEL",
    // SANS GARANTIE NI CONDITIONS DE QUELQUE NATURE QUE CE SOIT, explicite ou implicite.
    // Voir la licence pour la langue spécifique régissant les permissions et les limitations
    // sous la licence.
  • In projects like Casdoor, Casnode, and Casbin OA, you may need to set up a demo to show the maintainer how your pull request helps with the development of the project.

  • When opening a pull request and committing your contribution, it is recommended to use semantic commits with the following format: <type>(<scope>): <subject>. The <scope> is optional. For more detailed usage, please refer to Conventional Commits.

Licence​

By contributing to Casbin, you agree that your contributions will be licensed under the Apache License.