The Go SDK covers the server-side Channel app responsibilities provided by the TypeScript SDK, using Go builders, generics, structs, and Gin instead of decorators, Zod, and NestJS.
Verified release: github.com/channel-io/app-sdk/go v0.14.0, requiring Go 1.25.
- Architecture: packages, request lifecycle, discovery, and trust boundaries
- Functions and Schemas: typed handlers, schemas, errors, discovery, and tests
- Server and Routing: default server, Gin mounting, signatures, and auto-registration
- Authentication and Tokens: credentials, token cache, refresh, and WAM authorization
- Extensions: typed builders, naming, registration, and supported families
- Native Functions: token, registration, data, and app-function clients
- WAM Integration: Go action results with the shared React WAM SDK
- Feature Parity: current differences from the TypeScript SDK
- Extensions: builders, schemas, Messaging, WMS, DataSource, and advanced patterns
| Responsibility | TypeScript | Go |
|---|---|---|
| App registry | ChannelAppModule discovery |
appsdk.App |
| Typed Function | @Func with schema decorators |
appsdk.Register / appsdk.MustRegister |
| Standard Extension | @Extension |
extension/* builder |
| Input/output schema | Zod | Go struct/schema tags or explicit schema |
| Function route | NestJS controller | server or server/gin |
| Request signature | SignatureGuard |
server.WithSignature |
| App/channel token | TokenManager |
native.TokenManager |
| Native client | NativeFunctionClient |
native.Client |
| Test helper | SDK testing utilities | testkit |
| WAM frontend | @channel.io/app-sdk-wam |
Same TypeScript/React package |
The public Go package source is the contract. When this reference and an example disagree, follow exported Go APIs and tests first, then this reference and the Go tutorial.