Zum Hauptinhalt springen

Contributing

Casbin is an open-source authorization library with implementations in many languages. We welcome contributors in any of the supported languages.

The project splits into two main areas:

  • Core and language ports — Implementing Casbin’s core and ecosystem in Go, Java, Node.js, PHP, Python, .NET, C++, Rust, and others.
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
ProduktionsbereitProduktionsbereitProduction-readyProduction-ready
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
ProduktionsbereitProduktionsbereitProduction-readyProduction-ready
  • Applications and tools — Projects built on top of Casbin (e.g. editors, dashboards).
ProjektDemoDetailsTech Stack
Casbin EditorCasbin EditorA browser-based editor for creating and testing Casbin models and policies.TypeScript + React

Ways to contribute

  • Use Casbin and give feedback — Report bugs or suggest features on GitHub. For bigger ideas, discuss first on Discord or GitHub Discussions. Please use English for issues and discussions.

  • Improve documentation — Docs are a great way to get started; fixes and clarifications are always welcome.

  • Tackle issues — See the project board for open issues; many are labeled by difficulty.

Submitting pull requests

We use GitHub and standard pull-request workflow.

Before you submit:

  • Describe the purpose and impact of your change clearly.

  • Keep each PR focused (one feature or fix). Split unrelated changes into separate PRs.

  • When adding new files, include the Casbin license header at the top:

    // Copyright 2021 The casbin Authors. All Rights Reserved.
    //
    // Licensed under the Apache License, Version 2.0 (the "License");
    // you may not use this file except in compliance with the License.
    // You may obtain a copy of the License at
    //
    // http://www.apache.org/licenses/LICENSE-2.0
    //
    // Unless required by applicable law or agreed to in writing, software
    // distributed under the License is distributed on an "AS IS" BASIS,
    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    // See the License for the specific language governing permissions and
    // limitations under the License.
  • Use semantic commit messages following the format: <type>(<scope>): <subject>. Der <scope> ist optional. For detailed guidelines, see Conventional Commits.

Licensing

All contributions to Casbin are licensed under the Apache License.