teloxide-core 0.10.1

Core part of the `teloxide` library - telegram bot API client
Documentation
[package]
name = "teloxide-core"
version = "0.10.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"]
rustls-native-roots = ["reqwest/rustls-tls-native-roots"]
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"]

# Trace bot adaptor
trace_adaptor = []

# Erased bot adaptor
erased = []

# CacheMe bot adaptor
cache_me = []

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


[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 = "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"
chrono = { version = "0.4.32", 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"]

[package.metadata.release]
tag-prefix = "core-"
enable-features = ["full"]
pre-release-replacements = [
    { file = "README.md", search = "teloxide-core = \"[^\"]+\"", replace = "teloxide-core = \"{{version}}\"" },
    { file = "src/lib.rs", search = "teloxide-core = \"[^\"]+\"", replace = "teloxide-core = \"{{version}}\"" },
    { file = "CHANGELOG.md", search = "## unreleased", replace = "## unreleased\n\n## {{version}} - {{date}}", exactly = 1 },
]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(dep_docsrs)'] }

[[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",
]