Telegram client for rust.
This crate use td to call telegram client api. support async api.
toml
[dependencies]
telegram-client = "1.7.*"
Version mapping
| telegram-client | td | |------------------------|-------------| | 0.* | master@5587f10 | | ~~1.3.~~ | ~~1.3.~~ | | ~~1.4.~~ | ~~1.4.~~ | | ~~1.5.~~ | ~~1.5.~~ | | ~~1.6.~~ | ~~1.6.~~ | | ~~1.7.~~ | ~~1.7.~~ |
The version 1.3
, 1.4
, 1.5
, 1.6
, 1.7
is outdated. the reason you can read
Therefore, if tdlib has not had a new release version, the telegram-client 1.x
version will no longer be maintained. Please use 0.x
and if you used 1.x
you can change your dependency to 0.x
.
A fixed version is recommended, you can read Comparison requirements about the fixed version. Because of cargo's dependency mechanism, if you don't specify a specific version, it will be automatically upgraded, but there is usually a dependency between t and a, and the new version cannot be applied. The current dependencies are as follows:
| telegram-client | rtdlib | |------------------------|-------------| | =0.7.2 | =0.7.2 | | ~~=1.3.7~~ | ~~=1.3.7~~ | | ~~=1.4.6~~ | ~~=1.4.6~~ | | ~~=1.5.5~~ | ~~=1.5.5~~ | | ~~=1.6.6~~ | ~~=1.6.6~~ | | ~~=1.7.0~~ | ~~=1.7.0~~ | | ~~=1.7.1~~ | ~~=1.7.1~~ |
Note that you need tdjson dylib file in your path for building and running your application. See also rtdlib-sys for more details.
```rust fn main() { let api = Api::default(); let mut client = Client::new(api.clone()); let listener = client.listener();
listener.on_receive(|(api, json)| { debug!("receive {}", json); Ok(()) });
client.daemon("telegram-rs"); } ```
```rust
async fn main() { let api = Api::rasync();
let mut client = Client::new(api.api().clone()); let listener = client.listener();
// listener.onupdateauthorization_state...
client.start();
let chat = api.getchat(GetChat::builder().chatid(1)).await; println!("{:#?}", chat); } ```
more examples
Most of the events are from td, two events of particular concern.
This event is receive everything from td, returned data type is a json string.
When td returned json can not deserialize, or your event handler returned error. will be call is event.
a sample of event handler returned error
rust
listener.on_proxy(|(api, pxy)| {
debug!("Proxy info => {:?}", pxy);
Err(TGError::new("some error"))
});