Zum Hauptinhalt springen

Mitwirken

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++rosten
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Production-readyProduction-readyProduction-readyProduction-ready
  • Application-oriented projects - These projects are related to applications built on top of Casbin.
ProjektDemoDetailsSkill Stacks
KasseCasdoorCasdoor is a UI-first centralized authentication/Single-Sign-On (SSO) platform based on OAuth 2.0/OIDC.JavaScript + Reagieren und Golang + Beego + SQL
CasnodeCasbin-ForumCasnode is a next-generation forum software.JavaScript + Reagieren und Golang + Beego + SQL
Casbin OAOA systemCasbin-OA is an official manuscript processing, evaluation, and display system for Casbin technical writers.JavaScript + Reagieren und Golang + Beego + MySQL
Casbin EditorCasbin EditorCasbin-editor is a web-based editor for Casbin models and policies.TypeScript + Reaktion

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.

Pull-Anfragen​

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 Authors. Alle Rechte vorbehalten.
    //
    // Lizenziert unter der Apache-Lizenz, Version 2. (die "Lizenz");
    // Sie dĂŒrfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden.
    // Eine Kopie der Lizenz erhalten Sie unter
    //
    // http://www.apache.org/licenses/LICENSE-2.
    //
    // Sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart Software
    // unter der Lizenz vertrieben wird auf einer "AS IS" BASIS vertrieben,
    // OHNE GEWÄHRLEISTUNGEN ODER BEDINGUNGEN JEGLICHER KIND, sei es ausdrĂŒcklich oder stillschweigend.
    // Siehe die Lizenz fĂŒr die jeweilige Sprache fĂŒr die Berechtigungen und
    // EinschrÀnkungen unter der Lizenz.
  • 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.

Lizenz​

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