ferobot

crates.io docs.rs Bot API 9.6

Async Telegram Bot API framework for Rust. No proc macros. No hidden magic. Just clean async code.

All 165 methods and 285 types are auto-generated from the official Telegram spec: always current, never wrong.

[dependencies]
ferobot = "0.2"
tokio   = { version = "1", features = ["full"] }
use ferobot::{Bot, CommandHandler, Dispatcher, DispatcherOpts, HandlerResult, Updater, Context};

async fn start(bot: Bot, ctx: Context) -> HandlerResult {
    if let Some(msg) = ctx.effective_message() {
        msg.reply(&bot, "Hello! I'm running on ferobot.").await?;
    }
    Ok(())
}

#[tokio::main]
async fn main() {
    let bot = Bot::new(std::env::var("BOT_TOKEN").unwrap()).await.unwrap();

    let mut dp = Dispatcher::new(DispatcherOpts::default());
    dp.add_handler(CommandHandler::new("start", start));

    Updater::new(bot, dp).poll_timeout(30).start_polling().await.unwrap();
}

Features

  • Fully async: built on Tokio; every update runs in its own task

  • Codegen API: all 165 methods generated from the official Telegram spec

  • Dispatcher: CommandHandler, MessageHandler, ConversationHandler with composable filters

  • Webhook + Polling: production Axum webhook server and long-polling Updater

  • Fluent builder: chain optional params, then .await; zero boilerplate

  • Termux ready: compiles and runs on Android/ARM64