[package]
name = "ferogram"
description = "Production-grade async Telegram MTProto client: updates, bots, flood-wait, dialogs, messages"
readme = "README.md"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/ferogram"
keywords = ["telegram", "mtproto", "client", "bot", "async"]
categories = ["api-bindings", "network-programming", "asynchronous"]
[dependencies]
ferogram-tl-types = { workspace = true, features = ["tl-api", "tl-mtproto"] }
ferogram-mtproto = { workspace = true }
ferogram-crypto = { workspace = true }
ferogram-session = { workspace = true }
ferogram-parsers = { workspace = true }
ferogram-derive = { workspace = true, optional = true }
ferogram-tl-parser = { workspace = true, optional = true }
ferogram-tl-gen = { workspace = true, optional = true }
async-trait = "0.1"
tokio = { version = "1", features = ["net", "io-util", "sync", "time", "rt", "rt-multi-thread", "macros", "fs"] }
tokio-util = { version = "0.7", features = ["rt"] }
parking_lot = "0.12"
dashmap = "6"
moka = { version = "0.12", features = ["sync"] }
getrandom = "0.2"
flate2 = "1"
md5 = "0.7"
num-bigint = "0.4"
num-traits = "0.2"
sha2 = "0.10"
hmac = "0.12"
pbkdf2 = "0.12"
tracing = { version = "0.1", features = ["log"] }
serde = { version = "1", features = ["derive"] }
mime_guess = "2"
base64 = "0.22"
chrono = { version = "0.4", features = ["clock"] }
tokio-socks = "0.5"
socket2 = { version = "0.5", features = ["all"] }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] }
serde_json = "1"
[features]
default = []
derive = ["dep:ferogram-derive"]
sqlite-session = ["ferogram-session/sqlite-session"]
libsql-session = ["ferogram-session/libsql-session"]
serde = ["ferogram-session/serde"]
html = ["ferogram-parsers/html"]
html5ever = ["ferogram-parsers/html5ever"]
parser = ["dep:ferogram-tl-parser"]
codegen = ["dep:ferogram-tl-gen"]
[package.metadata.docs.rs]
features = ["sqlite-session", "serde", "html", "html5ever", "parser", "codegen"]
rustdoc-args = ["--cfg", "docsrs"]