Skip to main content

Crate tele

Crate tele 

Source
Expand description

tele is an ergonomic Telegram Bot API SDK and bot runtime toolkit for Rust. Built on reqx, with strict error modeling and async/blocking parity.

Recommended stable surface:

  • client.app() / context.app() for runtime business code such as text/media sends, replies, callback answers, Web App flows, moderation, and membership/capability checks.
  • client.control() for startup/setup/orchestration such as bootstrap, router preparation, and outbox management.
  • client.raw() / client.typed() / client.advanced() as lower-level escape hatches when the high-level facades are intentionally not enough.

Minimal async example:

use tele::Client;
use tele::types::ParseMode;

#[tokio::main]
async fn main() -> Result<(), tele::Error> {
    let client = Client::builder("https://api.telegram.org")?
        .bot_token("123456:telegram-bot-token")?
        .build()?;

    let _sent = client
        .app()
        .text(123456789_i64, "hello from tele")?
        .parse_mode(ParseMode::MarkdownV2)
        .send()
        .await?;

    Ok(())
}

With feature = "bot", prefer context.app() inside handlers and client.control() for startup/bootstrap/outbox orchestration. For richer runtime flows, prefer client.app().callback_answer(...), client.app().photo()/document()/video()/audio()/animation()/voice()/sticker()/media_group(), and client.app().membership() before dropping to raw request structs. The package README and examples/ directory contain the minimal bot and API layer walkthroughs.

Re-exports§

pub use auth::Auth;
pub use auth::BotToken;
pub use auth::VerifiedWebAppInitData;
pub use auth::parse_web_app_init_data;
pub use auth::verify_web_app_init_data;
pub use client::BlockingClient;
pub use client::Client;
pub use client::AnimationSendBuilder;
pub use client::AppApi;
pub use client::AudioSendBuilder;
pub use client::CallbackAnswerBuilder;
pub use client::ControlApi;
pub use client::DocumentSendBuilder;
pub use client::MediaGroupSendBuilder;
pub use client::MembershipApi;
pub use client::ModerationApi;
pub use client::ModerationNoticeApi;
pub use client::PhotoSendBuilder;
pub use client::RawApi;
pub use client::SetupApi;
pub use client::StickerSendBuilder;
pub use client::TextSendBuilder;
pub use client::TypedApi;
pub use client::VideoSendBuilder;
pub use client::VoiceSendBuilder;
pub use client::WebAppApi;
pub use client::BanMemberOptions;
pub use client::BootstrapFetchStepReport;
pub use client::BootstrapGetMePolicy;
pub use client::BootstrapOutcome;
pub use client::BootstrapPlan;
pub use client::BootstrapReport;
pub use client::BootstrapRetryPolicy;
pub use client::BootstrapStepDiagnostics;
pub use client::BootstrapStepPhase;
pub use client::BootstrapStepStatus;
pub use client::BootstrapSyncStepReport;
pub use client::ClientMetric;
pub use client::ClientMetricHook;
pub use client::MenuButtonConfig;
pub use client::RestrictMemberOptions;
pub use client::WebAppQueryPayload;
pub use client::BlockingAnimationSendBuilder;
pub use client::BlockingAppApi;
pub use client::BlockingAudioSendBuilder;
pub use client::BlockingCallbackAnswerBuilder;
pub use client::BlockingControlApi;
pub use client::BlockingDocumentSendBuilder;
pub use client::BlockingMediaGroupSendBuilder;
pub use client::BlockingMembershipApi;
pub use client::BlockingModerationApi;
pub use client::BlockingModerationNoticeApi;
pub use client::BlockingPhotoSendBuilder;
pub use client::BlockingRawApi;
pub use client::BlockingStickerSendBuilder;
pub use client::BlockingTextSendBuilder;
pub use client::BlockingTypedApi;
pub use client::BlockingVideoSendBuilder;
pub use client::BlockingVoiceSendBuilder;
pub use client::BlockingSetupApi;
pub use client::BlockingWebAppApi;
pub use client::ClientBuilder;
pub use client::RateLimitConfig;
pub use client::RetryConfig;
pub use error::Error;
pub use error::ErrorClass;
pub use error::Result;
pub use types::UploadFile;

Modules§

api
Telegram API service modules.
auth
bot
client
error
prelude
Common imports for building Telegram bots with tele.
testing
Test utilities for SDK and downstream integration tests.
types
Telegram Bot API request and response models.

Derive Macros§

BotCommands