go get github.com/clutchcall/clutchcall-sdk/go@latest
CGO links clutchcall_core_ffi automatically when the prebuilt binary is on LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH on macOS). Use CLUTCHCALL_LIB_PATH to point at a custom location.

Sub-packages

Each modality is its own sub-package:
import (
  "github.com/clutchcall/clutchcall-sdk/go/pkg/voice"
  "github.com/clutchcall/clutchcall-sdk/go/pkg/streams"
  "github.com/clutchcall/clutchcall-sdk/go/pkg/robotics"
  "github.com/clutchcall/clutchcall-sdk/go/pkg/games"
  "github.com/clutchcall/clutchcall-sdk/go/pkg/data"
  "github.com/clutchcall/clutchcall-sdk/go/pkg/moqt"
)
The root package (github.com/clutchcall/clutchcall-sdk/go) still hosts the legacy ClutchCallClient voice-RPC surface.

Verify

package main

import (
  "context"
  "fmt"
  "github.com/clutchcall/clutchcall-sdk/go/pkg/moqt"
)

func main() {
  client, err := moqt.Connect(context.Background(),
      "quic://relay.clutchcall.dev", "")
  if err != nil { panic(err) }
  fmt.Println("rtt:", client.ConnectionRTTUs(), "µs")
  client.Close()
}

Next

Quickstart

Streams modality end to end.

Reference

Every modality, every method.

Examples

Per-modality examples.

Modalities

The 5-modality model.