Files
mxaccessgw/clients/go
2026-04-26 19:27:27 -04:00
..
2026-04-26 19:27:27 -04:00
2026-04-26 19:27:27 -04:00
2026-04-26 19:27:27 -04:00
2026-04-26 19:27:27 -04:00
2026-04-26 19:27:27 -04:00
2026-04-26 19:27:27 -04:00

Go Client

The Go client module contains the generated MXAccess Gateway protobuf bindings, a small handwritten mxgateway package, and the mxgw-go test CLI scaffold. The module uses the shared proto inputs documented in ../../docs/client-proto-generation.md so gateway and client contracts stay in sync.

Layout

clients/go/
  go.mod
  generate-proto.ps1
  internal/generated/
  mxgateway/
  cmd/mxgw-go/

internal/generated contains code produced by protoc, protoc-gen-go, and protoc-gen-go-grpc. Do not edit generated files by hand.

Regenerating Protobuf Bindings

Run generation after the shared .proto files or the Go output path changes:

./generate-proto.ps1

The script uses the tool paths recorded in ../../docs/toolchain-links.md.

Build And Test

Run the Go module checks from clients/go:

go test ./...
go build ./...

The scaffold tests parse the shared golden JSON fixtures with the generated Go types. Later client implementation tests add fake gRPC services, auth metadata, streaming, value conversion, and CLI behavior.

CLI

The scaffold CLI exposes version information:

go run ./cmd/mxgw-go version -json

Additional commands are implemented with the client/session wrapper work.