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 message 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(),
client.app().location()/venue()/contact()/poll()/dice(),
client.app().chat_action()/stop_poll(), 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::AnimationUploadBuilder;pub use client::AppApi;pub use client::AudioSendBuilder;pub use client::AudioUploadBuilder;pub use client::CallbackAnswerBuilder;pub use client::ChatActionBuilder;pub use client::ContactSendBuilder;pub use client::ControlApi;pub use client::DiceSendBuilder;pub use client::DocumentSendBuilder;pub use client::DocumentUploadBuilder;pub use client::LocationSendBuilder;pub use client::MediaGroupSendBuilder;pub use client::MediaGroupUploadBuilder;pub use client::MembershipApi;pub use client::ModerationApi;pub use client::ModerationNoticeApi;pub use client::PhotoSendBuilder;pub use client::PhotoUploadBuilder;pub use client::PollSendBuilder;pub use client::RawApi;pub use client::SetupApi;pub use client::StickerSendBuilder;pub use client::StickerUploadBuilder;pub use client::StopPollBuilder;pub use client::TextSendBuilder;pub use client::TypedApi;pub use client::VenueSendBuilder;pub use client::VideoNoteSendBuilder;pub use client::VideoNoteUploadBuilder;pub use client::VideoSendBuilder;pub use client::VideoUploadBuilder;pub use client::VoiceSendBuilder;pub use client::VoiceUploadBuilder;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::BlockingAnimationUploadBuilder;pub use client::BlockingAppApi;pub use client::BlockingAudioSendBuilder;pub use client::BlockingAudioUploadBuilder;pub use client::BlockingCallbackAnswerBuilder;pub use client::BlockingChatActionBuilder;pub use client::BlockingContactSendBuilder;pub use client::BlockingControlApi;pub use client::BlockingDiceSendBuilder;pub use client::BlockingDocumentSendBuilder;pub use client::BlockingDocumentUploadBuilder;pub use client::BlockingLocationSendBuilder;pub use client::BlockingMediaGroupSendBuilder;pub use client::BlockingMediaGroupUploadBuilder;pub use client::BlockingMembershipApi;pub use client::BlockingModerationApi;pub use client::BlockingModerationNoticeApi;pub use client::BlockingPhotoSendBuilder;pub use client::BlockingPhotoUploadBuilder;pub use client::BlockingPollSendBuilder;pub use client::BlockingRawApi;pub use client::BlockingStickerSendBuilder;pub use client::BlockingStickerUploadBuilder;pub use client::BlockingStopPollBuilder;pub use client::BlockingTextSendBuilder;pub use client::BlockingTypedApi;pub use client::BlockingVenueSendBuilder;pub use client::BlockingVideoNoteSendBuilder;pub use client::BlockingVideoNoteUploadBuilder;pub use client::BlockingVideoSendBuilder;pub use client::BlockingVideoUploadBuilder;pub use client::BlockingVoiceSendBuilder;pub use client::BlockingVoiceUploadBuilder;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;pub use types::UploadPart;
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.