mirror of
https://github.com/lukaszraczylo/go-telegram.git
synced 2026-06-05 22:43:59 +00:00
9072e9eafb
A fully-generated, strongly-typed Go client for the Telegram Bot API. * 176 methods + 301 types generated from Bot API v10.0 * 1408 auto-generated tests (8 scenarios per method) * Typed unions throughout — no 'any' in the public surface * Pluggable HTTP transport and JSON codec (default goccy/go-json) * Built-in retry middleware honouring Telegram's retry_after * Generic dispatcher with filters and conversation handlers * Self-verifying codegen pipeline (regen → audit → emit → run tests) * 14 example bots covering common patterns
23 lines
780 B
Go
23 lines
780 B
Go
// Package client provides HTTP client primitives for the Telegram Bot API.
|
|
package client
|
|
|
|
import "github.com/goccy/go-json"
|
|
|
|
// Codec encodes/decodes JSON payloads exchanged with the Telegram Bot API.
|
|
// The default implementation wraps goccy/go-json. Users may plug in
|
|
// bytedance/sonic or any compatible encoder by passing
|
|
// WithCodec to New.
|
|
type Codec interface {
|
|
Marshal(v any) ([]byte, error)
|
|
Unmarshal(data []byte, v any) error
|
|
}
|
|
|
|
// DefaultCodec wraps goccy/go-json. It is the zero-value safe default.
|
|
type DefaultCodec struct{}
|
|
|
|
// Marshal calls json.Marshal.
|
|
func (DefaultCodec) Marshal(v any) ([]byte, error) { return json.Marshal(v) }
|
|
|
|
// Unmarshal calls json.Unmarshal.
|
|
func (DefaultCodec) Unmarshal(data []byte, v any) error { return json.Unmarshal(data, v) }
|