An Elixir library and framework for building Telegram bots with a low-level API and opinionated DSL.
ExGram is an Elixir library and framework for building Telegram bots. It provides a low-level API for direct interaction with the Telegram Bot API and a high-level, opinionated framework with a DSL for rapid bot development. It solves the problem of creating maintainable, feature-rich Telegram bots in Elixir with automatic API updates and production-ready tooling.
Elixir developers who want to build Telegram bots, from those needing fine-grained API control to those seeking a structured framework for faster development.
Developers choose ExGram for its dual approach: a reliable low-level API for complex scenarios and a productive framework with a DSL for common tasks, all while automatically staying current with Telegram's API and supporting features like middleware and multiple bots.
Telegram Bot API low level API and 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.
ExGram generates its API from the official Telegram Bot JSON, ensuring it's always up-to-date with the latest features without manual intervention, as highlighted in the README.
Provides both a low-level API for fine-grained control and a high-level framework with DSL for rapid bot development, allowing developers to choose the right approach for their needs.
Supports custom middleware for authentication, logging, and processing, enabling scalable and maintainable bot architectures, as detailed in the middleware guide.
Allows running several bots within a single Elixir application, simplifying deployment and resource management, with examples in the multiple bots guide.
Requires explicit configuration of an HTTP client like Req and a JSON engine, adding initial setup complexity compared to all-in-one solutions, as noted in the installation steps.
Tied exclusively to Elixir, making it unsuitable for teams using other languages or those unfamiliar with functional programming patterns, limiting cross-platform adoption.
The opinionated framework and DSL, while productive for complex bots, can introduce unnecessary boilerplate and learning curve for trivial or prototype-level projects.