teloxide-core 0.9.1

Core part of the `teloxide` library - telegram bot API client
Documentation
[package]
name = "teloxide-core"
version = "0.9.1"
description = "Core part of the `teloxide` library - telegram bot API client"

rust-version.workspace = true
edition.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true

documentation = "https://docs.rs/teloxide-core/"
readme = "README.md"

keywords = ["teloxide", "telegram", "telegram-bot", "telegram-bot-api", "bot"]
categories = ["api-bindings", "asynchronous"]


[features]
# NB: When adding features here, don't forget to update teloxide's Cargo.toml

default = ["native-tls"]

rustls = ["reqwest/rustls-tls"]
native-tls = ["reqwest/native-tls"]

# Features which require nightly compiler.
#
# Currently the only used compiler feature is feature(type_alias_impl_trait)
# which allow implementing `Future`s without boxing.
nightly = []

# Throttling bot adaptor
throttle = ["vecrem", "tokio/macros"]

# Trace bot adaptor
trace_adaptor = []

# Erased bot adaptor
erased = []

# CacheMe bot adaptor
cache_me = []

# AutoSend bot adaptor
auto_send = []

# All features except nightly and tls-related
full = ["throttle", "trace_adaptor", "erased", "cache_me", "auto_send"]


[dependencies]
futures = "0.3.5"
tokio = { version = "1.12.0", features = ["fs"] }
tokio-util = { version = "0.7.0", features = ["codec"] }
pin-project = "1.0.12"
bytes = "1.0.0"
reqwest = { version = "0.11.10", features = ["json", "stream", "multipart"], default-features = false }
url = { version = "2", features = ["serde"] }
log = "0.4"

serde = { version = "1.0.114", features = ["derive"] }
serde_json = "1.0.55"
serde_with_macros = "1.5.2"
uuid = { version = "1.1.0", features = ["v4"] } # for attaching input files
 
derive_more = "0.99.9"
mime = "0.3.16"
thiserror = "1.0.20"
once_cell = "1.5.0"
takecell = "0.1"
take_mut = "0.2"
rc-box = "1.1.1"
never = "0.1.0"
chrono = { version = "0.4.19", default-features = false }
either = "1.6.1"
bitflags = { version = "1.2" }

vecrem = { version = "0.1", optional = true }


[dev-dependencies]
pretty_env_logger = "0.4"
tokio = { version = "1.8.0", features = ["fs", "macros", "macros", "rt-multi-thread"] }
cool_asserts = "2.0.3"

xshell = "0.2"
ron = "0.7"
indexmap = { version = "1.9", features = ["serde-1"] }
aho-corasick = "0.7"
itertools = "0.10"


[package.metadata.docs.rs]
features = ["full", "nightly", "tokio/macros", "tokio/rt-multi-thread"]
rustdoc-args = ["--cfg", "docsrs", "-Znormalize-docs"]

# https://github.com/rust-lang/rust/issues/88791
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]


[[example]]
name = "self_info"
required-features = ["tokio/macros", "tokio/rt-multi-thread"]

# This is required due to some stuff with dev-dependencies,
# backwards compatability and cargo:
# https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#scrape-examples
doc-scrape-examples = true

[[example]]
name = "erased"
required-features = ["tokio/macros", "tokio/rt-multi-thread", "erased", "trace_adaptor"]