[package]
name = "frakti"
version = "0.1.4"
authors = [
    "Ayrat Badykov <ayratin555@gmail.com>",
    "EdJoPaTo <frankenstein-rust@edjopato.de>",
    "Pepe Márquez <pepe.marquezromero@gmail.com>",
    "PRO-2684"
]
description = "Telegram bot API client for Rust, with a focus on single-threaded async runtime support"
edition = "2024"
license = "WTFPL"
repository = "https://github.com/PRO-2684/frakti"
readme = "README.md"
keywords = ["request", "http", "client", "bot", "telegram"]
categories = ["web-programming::http-client"]

[package.metadata.docs.rs]
all-features = true

[features]
client-cyper = ["trait-async", "dep:cyper", "dep:compio", "dep:serde_json"]
trait-async = []

[lints.rust]
unsafe_code = "forbid"
[lints.clippy]
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }

# TODO: remove and fix (or allow explicitly on the specific problem)
missing_errors_doc = "allow"
unreadable_literal = "allow"

[dependencies]
bon = "3.9.1"
macro_rules_attribute = "0.2.2"
paste = "1.0.15"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = { version = "1.0.150", optional = true }
serde_with = { version = "3.20.0", default-features = false, features = ["macros"] }
thiserror = "2"
compio = { version = "0.19.0-rc.2", optional = true, default-features = false, features = ["fs"] }
cyper = { version = "0.9.0-rc.3", optional = true, features = ["json", "multipart"] }

[dev-dependencies]
serde_json = "1"
compio = { version = "0.19.0-rc.2", default-features = false, features = ["macros"] }

[[example]]
name = "async_get_me"
required-features = ["client-cyper"]

[[example]]
name = "async_reply_to_message_updates"
required-features = ["client-cyper"]

[[example]]
name = "async_file_upload"
required-features = ["client-cyper"]

[[example]]
name = "async_custom_client"
required-features = ["client-cyper"]
