A zero-dependency Go framework for building Telegram bots with full API support, webhooks, and middleware.
go-telegram/bot is a comprehensive, zero-dependency Go framework for creating Telegram bots. It provides a clean, idiomatic interface to the entire Telegram Bot API, enabling developers to build feature-rich bots with full API coverage, flexible handlers, and support for both webhook and polling update methods.
Go developers building production-ready Telegram bots who want a lightweight, dependency-free library with complete API support and idiomatic Go patterns.
Developers choose this framework for its zero-dependency architecture, direct mapping to the Telegram Bot API with Go-style signatures, and comprehensive feature set including typed error handling, middleware support, and utilities like Markdown escaping and web app validation.
Telegram Bot API Go framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The framework has no external library requirements, making it lightweight and reducing dependency conflicts, as highlighted in the README's philosophy of minimalism.
Implements all Telegram Bot API methods with Go-style signatures and parameter structs, ensuring full feature access without gaps, as stated in the key features.
Supports exact, prefix, regex, and custom match types for messages and callbacks, with middleware support for customizable update processing, detailed in the handler sections.
Provides specific error types for common API responses like rate limiting (TooManyRequestsError) and forbidden errors, aiding in robust error management, as shown in the errors section.
Lacks built-in support for state management, conversation flows, or other bot-specific frameworks, requiring developers to implement these from scratch, increasing boilerplate code.
Setting up webhooks involves explicit server handling with StartWebhook and WebhookHandler, which can be more complex and error-prone compared to libraries that abstract this further.
Additional features like UI components are in separate repositories (e.g., go-telegram/ui), adding overhead and integration challenges beyond the core framework.