branca.go

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

Github星跟踪图

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

主要指标

概览
名称与所有者essentialkaos/branca
主编程语言Go
编程语言 (语言数: 2)
平台
许可证MIT License
所有者活动
创建于2018-12-29 15:38:30
推送于2025-04-14 21:12:54
最后一次提交2025-04-15 00:12:01
发布数16
最新版本名称v2.0.7 (发布于 2025-04-15 00:12:24)
第一版名称v1.0.0 (发布于 2018-12-30 02:59:48)
用户参与
星数90
关注者数5
派生数8
提交数209
已启用问题?
问题数3
打开的问题数0
拉请求数70
打开的拉请求数0
关闭的拉请求数3
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?