Skip to content
 
 

Latest commit

 

History

306 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kappopher

Kappopher

Go Reference Go Report Card Tests Coverage License: MIT Go Version

A comprehensive Twitch API toolkit for Go.

Features

  • Complete OAuth Support: All four Twitch OAuth flows (Implicit, Authorization Code, Client Credentials, Device Code)
  • Token Management: Automatic token refresh, validation, and revocation
  • Comprehensive API Coverage: 147+ Helix API endpoints supported
  • IRC/TMI Chat: Full IRC chat client for building chat bots with message parsing, subs, raids, and moderation events
  • EventSub Webhooks: Built-in webhook handler with signature verification and event parsing
  • EventSub WebSocket: Real-time event streaming with automatic keepalive and reconnection
  • PubSub Compatibility: Migration layer providing familiar PubSub-style API backed by EventSub
  • Extension JWT: Full support for Twitch Extension authentication
  • Caching Layer: Built-in response caching with TTL support
  • Middleware System: Chainable request/response middleware
  • Batch Operations: Concurrent batch request processing
  • Rate Limiting: Automatic rate limit tracking with retry support
  • Type-Safe: Fully typed request/response structures with Go generics

View Full Documentation and a complete cookbook of examples

Installation

go get github.com/Its-donkey/kappopher

Quick Start

package main

import (
    "context"
    "fmt"
    "github.com/Its-donkey/kappopher/helix"
)

func main() {
    // Create auth client
    authClient := helix.NewAuthClient(helix.AuthConfig{
        ClientID:     "your-client-id",
        ClientSecret: "your-client-secret",
    })

    // Get app access token
    token, _ := authClient.GetAppAccessToken(context.Background())
    authClient.SetToken(token)

    // Create API client
    client := helix.NewClient("your-client-id", authClient)

    // Get user info
    resp, _ := client.GetUsers(context.Background(), &helix.GetUsersParams{
        Logins: []string{"shroud"},
    })

    fmt.Printf("User: %s (ID: %s)\n", resp.Data[0].DisplayName, resp.Data[0].ID)
}

Documentation

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

About

Go client for the Twitch Helix API and EventSub with typed endpoints, examples, and CI workflows

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages