[][src]Crate telebot

Write a telegram bot in Rust

This library allows you to write a Telegram Bot in Rust. It's an almost complete wrapper for the Telegram Bot API and uses hyper to send a request to the Telegram server. Each Telegram function call returns a future and carries the actual bot and the answer. You can find all available functions in src/functions.rs. The crate telebot-derive implements all required getter, setter and send functions automatically.

Example usage

extern crate telebot;
extern crate tokio_core;
extern crate futures;
use telebot::bot;
use tokio_core::reactor::Core;
use futures::stream::Stream;
use futures::Future;
use std::fs::File;

// import all available functions
use telebot::functions::*;

fn main() {
    // create a new event loop
    let mut lp = Core::new().unwrap();

    // init the bot with the bot key and an update interval of 200ms
    let bot = bot::RcBot::new(lp.handle(), "<TELEGRAM-BOT-TOKEN>")

    // register a new command "reply" which replies all received messages
    let handle = bot.new_cmd("/reply")
    .and_then(|(bot, msg)| {
        let mut text = msg.text.unwrap().clone();

        // when the text is empty send a dummy text
        if text.is_empty() {
            text = "<empty>".into();

        // construct a message and return a new future which will be resolved by tokio
        bot.message(msg.chat.id, text).send()

    // register the new command

    // start the event loop
    bot.run(&mut lp).unwrap();


pub use bot::Bot;
pub use error::Error;
pub use file::File;



This is the actual Bot module. For ergonomic reasons there is a RcBot which uses the real bot as an underlying field. You should always use RcBot.


A Telegram file which contains a readable source and a filename


Available telegram functions, copied from https://core.telegram.org/bots/api#available-methods


The complete list of telegram types, copied from: https://core.telegram.org/bots/api#available-types