ferobot¶
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,ConversationHandlerwith composable filtersWebhook + Polling: production Axum webhook server and long-polling
UpdaterFluent builder: chain optional params, then
.await; zero boilerplateTermux ready: compiles and runs on Android/ARM64
Reference