Installation • Usage example • Benchmarks • Build Status • License
branca.go is branca token specification implementation for Go 1.23+.
Features and benefits:
- Pure Go implementation;
- No third-party dependencies at all;
- 100% code coverage;
- Fuzz tests.
Make sure you have a working Go 1.23+ workspace (instructions), then:
go get -u github.com/essentialkaos/branca/v2package main import ( "fmt" "github.com/essentialkaos/branca/v2" ) func main() { key := "abcd1234abcd1234abcd1234abcd1234" brc, err := branca.NewBranca([]byte(key)) if err != nil { fmt.Printf("Error: %v\n", err) return } payload := "MySuperSecretData" token, err := brc.EncodeToString([]byte(payload)) if err != nil { fmt.Printf("Error: %v\n", err) return } fmt.Printf("Token: %s\n", token) }You can run benchmarks by yourself using make benchmark command.
go version go1.23.2 linux/amd64 BrancaSuite.BenchmarkBase62Decoding 1000000 1106 ns/op 408 B/op 7 allocs/op BrancaSuite.BenchmarkBase62Encoding 1000000 1105 ns/op 512 B/op 6 allocs/op BrancaSuite.BenchmarkBrancaDecoding 5000000 421 ns/op 48 B/op 2 allocs/op BrancaSuite.BenchmarkBrancaDecodingFromString 1000000 1632 ns/op 456 B/op 9 allocs/op BrancaSuite.BenchmarkBrancaEncoding 1000000 2108 ns/op 152 B/op 4 allocs/op BrancaSuite.BenchmarkBrancaEncodingToString 500000 3854 ns/op 664 B/op 10 allocs/op | Branch | Status |
|---|---|
master | |
develop |
Before contributing to this project please read our Contributing Guidelines.