telegram-client

Build Status

Telegram client for rust.

This crate use td to call telegram client api. support async api.

Usage

toml [dependencies] telegram-client = "0.8.*"

version

td and rtdlib/telegram-client

Version mapping

| telegram-client | td | |------------------|---------| | 0.8.* | master@fa8feef | | 1.8.* | 1.8.* |

The version 1.3, 1.4, 1.5, 1.6, 1.7 is outdated. the reason you can read

telegram-client and rtdlib

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.8.0 | =0.8.0 | | =1.8.0 | =1.8.0 |

Note

Note that you need tdjson dylib file in your path for building and running your application. See also rtdlib-sys for more details.

Examples

block

```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"); } ```

async

```rust

[tokio::main]

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

more examples

Event

Most of the events are from td, two events of particular concern.

on_receive

This event is receive everything from td, returned data type is a json string.

on_exception

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")) });