# tikv-watcher **Repository Path**: mirrors_casbin/tikv-watcher ## Basic Information - **Project Name**: tikv-watcher - **Description**: TiKV watcher for Casbin - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-05 - **Last Updated**: 2026-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TiKV Watcher [![Go](https://github.com/casbin/tikv-watcher/actions/workflows/go.yml/badge.svg)](https://github.com/casbin/tikv-watcher/actions/workflows/go.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/casbin/tikv-watcher)](https://goreportcard.com/report/github.com/casbin/tikv-watcher) [![Go Reference](https://pkg.go.dev/badge/github.com/casbin/tikv-watcher.svg)](https://pkg.go.dev/github.com/casbin/tikv-watcher) TiKV Watcher is the [TiKV](https://github.com/tikv/tikv) watcher for Casbin. With this library, Casbin can synchronize the policy with the TiKV database in multiple enforcer instances. *Note: Considering that TiKV doesn't have watch mechanism like etcd or channel like Redis, this ugly implementation uses polling to achieve monitoring a certain key, which may cause some performance trouble* ### Installation: ```shell go get github.com/casbin/tikv-watcher ``` ### Single Example: start the TiKV service before run this example: ```golang package main import ( "fmt" "time" watcher "github.com/casbin/tikv-watcher" casbin "github.com/casbin/casbin/v2" ) func main() { e, _ := casbin.NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv") w, err := watcher.NewWatcher( "testkey", 100*time.Millisecond, "127.0.0.1:2379", ) if err != nil { panic(err) return } e.SetWatcher(w) w.SetUpdateCallback( func(s string) { fmt.Println("===================get" + s) }, ) e.SavePolicy() time.Sleep(10 * time.Second) } ``` ### License: This project is under Apache 2.0 License. See the LICENSE file for the full license text.