branca.go

适用于 Golang 的认证加密 API 令牌(IETF XChaCha20-Poly1305 AEAD)。「Authenticated encrypted API tokens (IETF XChaCha20-Poly1305 AEAD) for Golang」

Github stars Tracking Chart

branca.go is branca token specification implementation for Golang 1.14+.

Features and benefits:

  • Pure Go implementation;
  • No third-party dependencies at all;
  • 100% code coverage;
  • Fuzz tests.

Installation

Make sure you have a working Go 1.18+ workspace (instructions), then:

go get -u github.com/essentialkaos/branca/v2

Usage example

package 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)
}

Benchmarks

You can run benchmarks by yourself using make benchmark command.

BrancaSuite.BenchmarkBase62Decoding             1000000   1097 ns/op   408 B/op    7 allocs/op
BrancaSuite.BenchmarkBase62Encoding             1000000   1745 ns/op   512 B/op    6 allocs/op
BrancaSuite.BenchmarkBrancaDecoding             5000000    375 ns/op    48 B/op    2 allocs/op
BrancaSuite.BenchmarkBrancaDecodingFromString   1000000   1523 ns/op   456 B/op    9 allocs/op
BrancaSuite.BenchmarkBrancaEncoding             1000000   1781 ns/op   152 B/op    4 allocs/op
BrancaSuite.BenchmarkBrancaEncodingToString      500000   4072 ns/op   664 B/op   10 allocs/op

Build Status

Branch Status
master CI
develop CI

License

MIT

Main metrics

Overview
Name With Owneressentialkaos/branca
Primary LanguageGo
Program language (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2018-12-29 15:38:30
Pushed At2025-04-14 21:12:54
Last Commit At2025-04-15 00:12:01
Release Count16
Last Release Namev2.0.7 (Posted on 2025-04-15 00:12:24)
First Release Namev1.0.0 (Posted on 2018-12-30 02:59:48)
用户参与
Stargazers Count90
Watchers Count5
Fork Count8
Commits Count209
Has Issues Enabled
Issues Count3
Issue Open Count0
Pull Requests Count70
Pull Requests Open Count0
Pull Requests Close Count3
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private