Crate Docs Build Status Rust Version

telexide

Telexide is an easy to use library for making a telegram bot, built on tokio and hyper.

View the [examples] on how to make and structure a bot.

Use the [ClientBuilder] to easily create a [Client] object to your preferences and register commands with the [create_framework] macro and/or register your own update handlers, before running [Client::start] to start your bot. All of this is designed to be highly customisable. For further information about the client, please see the client's module-level documentation.

API calls are easy to make using the [APIClient] and the api data models, or create and use your own api client by implementing the [API] trait. For further information about the api client, please see the api's module-level documentation.

A default command framework is provided using the [Framework] object, providing easy handling of incoming telegram bot commands sent by users of your bot. For further information about the framework, please see the framework's module-level documentation.

Example Bot

A basic ping-pong bot can be written like:

```rust use std::env; use telexide_fork::{api::types::SendMessage, prelude::*};

[command(description = "just a ping-pong command")]

async fn ping(context: Context, message: Message) -> CommandResult { context .api .sendmessage(SendMessage::new(message.chat.getid(), "pong")) .await?; Ok(()) }

[tokio::main]

async fn main() -> telexidefork::Result<()> { let token = env::var("BOTTOKEN").expect("no token environment variable set");

ClientBuilder::with_framework(
    create_framework!("ping-pong", ping),
    token
).start().await

} ```

For more examples, please see the examples dir.

Features

Planned:

Installation

Add the following to your Cargo.toml file:

toml [dependencies] telexide = "0.1.6"

Supported Rust Versions

The minimum supported version is 1.46. The current Telexide version is not guaranteed to build on Rust versions earlier than the minimum supported version.