Documentation

rtdlib

Build Status

rtdlib is td for rust.

rtdlib crate have td type (classes). and tdjson binding. if use rtdlib you need include libtdjson.so to you build path.

Usage

0.*

[dependencies]
rtdlib = "0.*"

1.3.*

[dependencies]
rtdlib = "1.3.*"

1.4.*

[dependencies]
rtdlib = "1.4.*"

1.5.*

[dependencies]
rtdlib = "1.5.*"

1.6.*

[dependencies]
rtdlib = "1.6.*"

version

Since the rtdlib version follows td, a version number less than 100 is reserved for td release.

Version mapping

rtdlib td
0.* master
1.3.* 1.3.*
1.4.* 1.4.*
1.5.* 1.5.*
1.6.* 1.6.*

Example

types

let json = r#"{"@type":"updateAuthorizationState","authorization_state":{"@type":"authorizationStateWaitTdlibParameters"}}"#;
let state: UpdateAuthorizationState = serde_json::from_str(&json[..]).expect("Json fail");
assert_eq!("updateAuthorizationState", state.td_name());
let rjson = state.to_json();
assert!(rjson.is_ok(), true);
assert_eq!(json, rjson.unwrap());

tdjson

use rtdlib::tdjson::Tdlib;
let tdlib = Tdlib::new();
let request = r#"{"@type": "getMe"}"#;
tdlib.send(request);

td

More document you need check telegram api

How include libtdjson.so

The first you need read td know how to build td.

And then, when you have libtdjson.so copy this file to /usr/lib.

Or set an environment

export RUSTFLAGS="-C link-args=-Wl,-rpath,/path/to/lib_dir"
cargo run

In the development phase, you can set RUSTFLAGS environment to you IDE.