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.