[package] name = "frankenstein" version = "0.34.1" authors = ["Ayrat Badykov ", "EdJoPaTo ", "Pepe Márquez "] description = "Telegram bot API client for Rust" edition = "2021" license = "WTFPL" repository = "https://github.com/ayrat555/frankenstein" readme = "README.md" keywords = ["request", "http", "client", "bot", "telegram"] categories = ["web-programming::http-client"] [package.metadata.docs.rs] all-features = true [features] default = ["http-client"] http-client = ["telegram-trait", "dep:ureq", "dep:multipart", "dep:mime_guess", "dep:serde_json"] telegram-trait = [] async-http-client = ["async-telegram-trait", "dep:reqwest", "dep:tokio", "dep:serde_json"] async-telegram-trait = ["dep:async-trait"] [lints.rust] unsafe_code = "forbid" [lints.clippy] pedantic = { level = "warn", priority = -1 } nursery = { level = "warn", priority = -1 } struct_excessive_bools = "allow" # due to Telegram API # TODO: remove and fix (or allow explicitly on the specific problem) missing_errors_doc = "allow" option_if_let_else = "allow" unreadable_literal = "allow" [[example]] name = "get_me" required-features = ["http-client"] [[example]] name = "reply_to_message_updates" required-features = ["http-client"] [[example]] name = "reply_keyboard" required-features = ["http-client"] [[example]] name = "inline_keyboard" required-features = ["http-client"] [[example]] name = "custom_client" required-features = ["http-client"] [[example]] name = "async_get_me" required-features = ["async-http-client"] [[example]] name = "async_reply_to_message_updates" required-features = ["async-http-client"] [[example]] name = "async_file_upload" required-features = ["async-http-client"] [[example]] name = "async_custom_client" required-features = ["async-http-client"] [[example]] name = "api_trait_implementation" required-features = ["telegram-trait"] [dependencies] bon = "2.2.0" macro_rules_attribute = "0.2.0" paste = "1.0.2" serde = { version = "1.0.157", features = ["derive"] } serde_json = { version = "1.0.45", optional = true } serde_with = "3.0.0" thiserror = "1" [dependencies.async-trait] version = "0.1" optional = true [dependencies.mime_guess] version = "2" optional = true [dependencies.multipart] version = "0.18" default-features = false features = ["client"] optional = true [dependencies.reqwest] version = "0.12" default-features = false features = ["multipart", "stream", "rustls-tls"] optional = true [dependencies.tokio] version = "1" features = ["fs"] optional = true [dependencies.ureq] version = "2" optional = true [dev-dependencies] isahc = "1" mockito = "1.0" serde_json = "1" tokio = { version = "1", features = ["full"] }