Confium for Go Developers

github.com/confium/confium-go provides Go bindings via CGO + Rust FFI. Tier 3 — community-maintained.

Status

Tier 3 — community-maintained skeleton. Contributions welcome.

Install

go get github.com/confium/confium-go

CGO required (Rust static lib linked at build time).

Hello, verify

package main

import (
    "fmt"
    "github.com/confium/confium-go/composite"
)

func main() {
    sig, err := composite.FromJSON(sigJSON)
    if err != nil {
        panic(err)
    }

    result, err := sig.Verify([]byte("hello, threshold world"))
    if err != nil {
        panic(err)
    }

    fmt.Printf("valid: %v\n", result.AllVerified)
    for _, c := range result.PerComponent {
        fmt.Printf("  %s: %v\n", c.Algorithm, c.Valid)
    }
}

CGO build

CGO builds require Rust on the host:

# Build the Rust static lib first
cd $GOPATH/src/github.com/confium/confium-go
./build.sh  # produces libconfium_go.a

# Then build your Go program
go build ./...

Pre-built static libs ship in releases for major platforms.

Coverage

Currently ships:

  • Composite signature verify
  • Transparency inclusion proof verify
  • Cert parse + chain verify

in progress:

  • Threshold signing flows (wrapping coordinator HTTP API)
  • Privacy primitives (PSI, DP)
  • Async patterns via Go channels

Contributing

Go binding is in the workspace Go binding (crates/confium-go in this repository). Issues + PRs welcome.

See also