[dependencies.chrono]
default-features = false
features = ["std", "serde"]
version = "0.4"
[dependencies.parking_lot]
version = "0.12"
[dependencies.reqwest]
default-features = false
features = ["json", "rustls"]
optional = true
version = "0.13"
[dependencies.rumqttc]
optional = true
version = "0.25"
[dependencies.serde]
features = ["derive"]
version = "1.0"
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
features = ["rt-multi-thread", "macros", "sync", "time"]
version = "1.48"
[dependencies.tracing]
version = "0.1"
[dependencies.urlencoding]
version = "2.1"
[dependencies.uuid]
features = ["v4", "serde"]
version = "1.0"
[dev-dependencies.tokio]
features = ["rt-multi-thread", "macros", "test-util"]
version = "1.48"
[dev-dependencies.wiremock]
version = "0.6"
[[example]]
name = "bulb_test"
path = "examples/bulb_test.rs"
[[example]]
name = "discovery_test"
path = "examples/discovery_test.rs"
[[example]]
name = "energy_test"
path = "examples/energy_test.rs"
[[example]]
name = "routine_test"
path = "examples/routine_test.rs"
[[example]]
name = "uptime"
path = "examples/uptime.rs"
[features]
default = ["http", "mqtt"]
http = ["dep:reqwest"]
mqtt = ["dep:rumqttc"]
[lib]
name = "tasmor_lib"
path = "src/lib.rs"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "forbid"
[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["network-programming", "asynchronous"]
description = "Rust library to control Tasmota devices via MQTT and HTTP"
documentation = "https://docs.rs/tasmor_lib"
edition = "2024"
exclude = ["CLAUDE.md", "GEMINI.md", "AGENTS.md", "TODO.md"]
homepage = "https://codeberg.org/Bawycle/tasmor_lib"
keywords = ["tasmota", "mqtt", "home-automation", "iot", "smart-home"]
license = "MPL-2.0"
name = "tasmor_lib"
readme = "README.md"
repository = "https://codeberg.org/Bawycle/tasmor_lib.git"
rust-version = "1.92.0"
version = "0.5.0"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[[test]]
name = "http_integration"
path = "tests/http_integration.rs"
[[test]]
name = "real_devices"
path = "tests/real_devices.rs"