20 releases
0.6.7 | Nov 3, 2020 |
---|---|
0.6.5 | Jul 16, 2020 |
0.5.2 | Mar 31, 2020 |
0.4.0 | Dec 31, 2019 |
0.1.2 | Jul 30, 2019 |
#553 in Asynchronous
Used in 2 crates
1MB
21K
SLoC
tbot
Make cool Telegram bots with Rust easily. For example, here's a simple echo bot:
use tbot::prelude::*;
#[tokio::main]
async fn main() {
let mut bot = tbot::from_env!("BOT_TOKEN").event_loop();
bot.text(|context| async move {
let echo = &context.text.value;
let call_result = context.send_message(echo).call().await;
if let Err(err) = call_result {
dbg!(err);
}
});
bot.polling().start().await.unwrap();
}
There are many examples to see tbot
in action. If you want to see real-world
use of tbot
, check out this list.
If you're a newcomer, we recommend you go through the tutorial first. We also
have several How-to guides to help you use tbot
. You can always
refer to our API docs on docs.rs (also, docs for master
are available here).
If you have a question, ask it in our group on Telegram. If you find a bug, file an issue on either our GitLab or GitHub repository.
Features
- Full Telegram Bot API 4.9 support, as well as media download/upload, polling and webhooks;
async
/.await
support, built upontokio
;- Type-safe and idiomatic API;
- Easy to use, while scalable and configurable.
Installation
Add tbot
and tokio
to your Cargo.toml:
[dependencies]
tbot = "0.6"
tokio = { version = "0.2", features = ["macros"] }
tokio
is required to start the runtime. You'll also need the macros
feature
of tokio
if you're going to start the runtime using #[tokio::main]
.
Contribution
Glad you want to contribute to tbot
! We develop the crate on GitLab,
so create your merge request there if you can. We may accept pull requests
on GitHub as well, but we prefer GitLab.
Dependencies
~11–24MB
~370K SLoC