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.
toml
[dependencies]
rtdlib = "0.*"
toml
[dependencies]
rtdlib = "1.3.*"
toml
[dependencies]
rtdlib = "1.4.*"
toml
[dependencies]
rtdlib = "1.5.*"
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.* |
rust
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());
rust
use rtdlib::tdjson::Tdlib;
let tdlib = Tdlib::new();
let request = r#"{"@type": "getMe"}"#;
tdlib.send(request);
More document you need check telegram api
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
bash
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.