{"repo":"NicoNex/echotron","free":true,"listed":false,"github":"https://github.com/NicoNex/echotron","clone":"git clone https://github.com/NicoNex/echotron.git","description":"An elegant and concurrent library for the Telegram bot API in Go.","language":"Go","stars":445,"topics":["go","telegram-bot","telegram-bot-api","telegram","telegram-api","bot","library","golang","awesome-go","golang-library"],"license":"LGPL-3.0","category":"chat-messaging","readme_excerpt":"The idiomatic, concurrent Telegram Bot library for Go. Zero boilerplate. Built-in rate limiting. One instance per chat, by design. Why Echotron? Most Telegram bot libraries hand you a stream of updates and leave everything else to you. Echotron goes further: it ships a battle-tested concurrency model out of the box, so you can focus on bot logic instead of synchronisation primitives, rate limiters, and state machinery. Five-line bot No setup, no registration, no middleware stack. PollingUpdates returns a plain Go channel: range over it and you are done. The dispatcher pattern For production bots, Echotron's Dispatcher automatically maintains one isolated bot instance per chat. Each instance gets its own goroutine; state is naturally scoped per conversation. Concern Handled by --- --- Routing updates to the right chat Dispatcher Creating state for first-time users newBot factory Calling Update concurrently Dispatcher (goroutine per update) Rate limiting API calls built-in lclient Deduplication and offset tracking Dispatcher.Poll() A library, not a framework Echotron does not ask you to structure your application in any particular way. There is no command router to register, no middleware stack to assemble, no lifecycle hooks to implement, no configuration object to fill out before anything works. The Dispatcher is entirely optional. If you do not need per-chat state management, you can drive updates yourself with a plain channel: If you want webhooks without the Dispatcher, th","default_branch":null,"files":null,"tree":[],"storefront":"/r/NicoNex","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/NicoNex/echotron/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}