11 个版本
0.4.3 | 2023年4月9日 |
---|---|
0.4.2 | 2023年3月24日 |
0.4.1 | 2022年8月16日 |
0.4.0 | 2022年7月2日 |
0.1.0-beta.0 |
|
#999 in 网页编程
4MB
114K SLoC
rust-tdlib
Rust 的 TDlib 客户端。该库允许您与 Telegram 数据库库进行交互。目前支持 tdlib v1.8.0。
特性
- 客户端 - 提供与 TDlib API 的完全集成。参见
examples
目录。默认启用。启用此特性后,rust-tdlib 仅提供 TDlib 类型。
运行示例
lib.rs
:
rust-tdlib 是 TDlib (Telegram 数据库库) 的包装器。它允许您完成所有可以在真实 Telegram 中完成的事情。因此,是的,您可以使用 Rust 语言构建自己的 Telegram 客户端。
首先,您必须初始化客户端。您的步骤
- 使用 WorkerBuilder 构建 Worker。
- 启动 worker。
- 使用两个必需参数:api_id 和 api_hash 初始化 TdlibParameters。
- 使用 ClientBuilder 创建新的 Client。
- 使用 worker 授权 它。
- 编写您自己的代码以与 Telegram 交互。
use rust_tdlib::{client::{Client, Worker}, tdjson, types::*};
#[tokio::main]
async fn main() {
let mut worker = Worker::builder().build().unwrap();
let waiter = worker.start();
let tdlib_params = TdlibParameters::builder().api_id(env!("API_ID").parse::<i32>().unwrap()).api_hash(env!("API_HASH")).build();
let client = rust_tdlib::client::Client::builder().with_tdlib_parameters(tdlib_params).build();
let (client_state, client) = worker.bind_client(client1).await.unwrap();
let me = client.get_me(GetMe::builder().build()).await.unwrap();
println!("{:?}", me);
}
您可以读取从 Telegram 服务器接收的所有更新,例如:新消息、聊天更新、新聊天、用户更新等。所有更新变体都在 Update 中声明。
use rust_tdlib::{client::{Client, Worker}, types::{Update, TdlibParameters}};
#[tokio::main]
async fn main() {
let (sender, mut receiver) = tokio::sync::mpsc::channel::<Update>(10);
let tdlib_params = TdlibParameters::builder().api_id(env!("API_ID").parse::<i32>().unwrap()).api_hash(env!("API_HASH")).build();
let client = rust_tdlib::client::Client::builder().with_tdlib_parameters(tdlib_params).with_updates_sender(sender).build();
let mut worker = Worker::builder().build().unwrap();
let waiter = worker.start();
let (client_state, client) = worker.auth_client(client).await.unwrap();
if let Some(message) = receiver.recv().await.unwrap() {
eprintln!("updates handler received {:?}", message);
}
}
依赖项
~1.5–3.5MB
~71K SLoC