https://github.com/yoogoc/fga-rs
authorization/permission service, inspired by Google Zanzibar
https://github.com/yoogoc/fga-rs
authorization authorization-server permission rust zanzibar
Last synced: 4 months ago
JSON representation
authorization/permission service, inspired by Google Zanzibar
- Host: GitHub
- URL: https://github.com/yoogoc/fga-rs
- Owner: yoogoc
- License: mit
- Created: 2024-02-21T09:56:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-07T01:02:18.000Z (about 1 year ago)
- Last Synced: 2025-04-07T02:21:45.125Z (about 1 year ago)
- Topics: authorization, authorization-server, permission, rust, zanzibar
- Language: Rust
- Homepage:
- Size: 264 KB
- Stars: 12
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# fga-rs
wip(breaking changes at any time)
## what is fga-rs
fga-rs is a Fine Grained Authorization written in rust, such as openfga, permify, spicedb and so on.
fga-rs is a permission server for real time, enterprise application permissions inspired by Google Zanzibar.
## why fga-rs
1. written in rust
2. support superadmin
3. support fast condition eval(wip)
## Getting Started
### required
1. [rust](https://www.rust-lang.org/)
2. [postgres](https://postgresql.org/)
### init db
```shell
cargo run -p cli -- migration up -u postgres://postgres@127.0.0.1:5432/fga-rs
```
### start
```shell
cargo run -p cli -- server -u postgres://postgres@127.0.0.1:5432/fga-rs
```
## TODO
- [x] schema: design(such as model.authz), parser(use lalrpop)
- [x] schema: support permission: union(+ |), intersection(&), exclude(-), priority
- [ ] support condition(expr eval)
- [x] remote checker
- [x] grpc
- [x] refactor check request
- [x] expand tuple
- [x] opentelemetry
- [ ] config file use toml
- [x] migration database
- [x] test
- [ ] playground
- [ ] vscode-extension
- [ ] lsp
- [ ] sdk (priority: rust, java, go, js, python, ruby...)
## Credit
1. [openfga](https://github.com/openfga/openfga)
2. [permify](https://github.com/Permify/permify)
3. [spicedb](https://github.com/authzed/spicedb)