ferogram 0.3.8

Production-grade async Telegram MTProto client: updates, bots, flood-wait, dialogs, messages
Documentation
[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-fsm       = { workspace = true }
ferogram-connect   = { workspace = true }
ferogram-mtsender  = { workspace = true }
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"
metrics        = "0.24"
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"]
## Re-export the TL parser for custom tooling.
parser          = ["dep:ferogram-tl-parser"]
## Re-export the code generator for custom tooling.
codegen         = ["dep:ferogram-tl-gen"]

[dev-dependencies]
rand                = "0.8"
anyhow              = "1"
tracing-subscriber  = { version = "0.3", features = ["env-filter"] }

[[example]]
name               = "order_bot"
required-features  = ["derive"]

[[example]]
name               = "showcase_bot"

[[example]]
name               = "userbot"

[package.metadata.docs.rs]
features     = ["sqlite-session", "serde", "html", "html5ever", "parser", "codegen"]
rustdoc-args = ["--cfg", "docsrs"]