Skip to content

Desiders/telers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

telers

An asynchronous framework for Telegram Bot API written in Rust

Telers make it easy to create Telegram bots in Rust.

Before you start, make sure that you have a basic understanding of the Telegram Bot API, because types and methods in the library have the same fields and types as in the documentation.

More information about this crate can be found in the crate documentation.

Highlights

  • Asynchronous. Built on top of Tokio, a powerful asynchronous runtime.
  • Easy to use. Provides a simple and intuitive API for creating bots.
  • Based on aiogram. Inspired by the framework written in Python and tries to provide a similar functionality.
  • Routers, Middlewares, Filters and Handlers. Provides a powerful system of routers, middlewares, filters and handlers to make your code more readable and maintainable, and simplify the creation of bots.
  • Extractors. Have similar system of extractors as in axum and actix.

Examples

  • Echo bot. This example shows how to create an echo bot.
  • Text formatting. This example shows how to format text.
  • Text case filters. This example shows how to create text case filters.
  • Stats updates middleware. This example shows how to create a middleware that count incoming updates.
  • Context. This example shows how to extract data from event and context and use it in handlers.
  • Input file. This example shows how to send files by the bot.
  • Finite state machine. This example shows how to use a finite state machine (conversation).
  • Router tree. This example shows how to create a router tree.
  • Bot http client. This example shows how to set a custom bot HTTP client.
  • Axum and echo bot. This example shows how to create an echo bot and run it concurrently with polling axum server.

You may consider checking out this directory for more examples.

Community

Telegram

License

This project is licensed under either of the following licenses, at your option:

Releases

No releases published

Packages

No packages published

Languages