[package]
edition = "2024"
rust-version = "1.85.1"
name = "knust"
version = "0.1.0"
authors = ["Philipp Dreimann <philipp@dreimann.net>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Asynchronous KNX/IP library for Rust"
readme = "README.md"
keywords = [
"knx",
"home-automation",
"building-automation",
"iot",
]
categories = [
"network-programming",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/dphi/knust"
[features]
default = ["dpt"]
dpt = ["dep:strum"]
ets = [
"dep:strum",
"dpt",
"tokio/fs",
]
secure = [
"dep:aes",
"dep:ctr",
"dep:sha2",
"dep:pbkdf2",
"dep:x25519-dalek",
"dep:zeroize",
"ets",
]
server = []
[lib]
name = "knust"
path = "src/lib.rs"
[[example]]
name = "color_dpt_demo"
path = "examples/color_dpt_demo.rs"
required-features = ["dpt"]
[[example]]
name = "configuration_examples"
path = "examples/configuration_examples.rs"
[[example]]
name = "connection_handling"
path = "examples/connection_handling.rs"
[[example]]
name = "custom_devices"
path = "examples/custom_devices.rs"
required-features = ["dpt"]
[[example]]
name = "datetime_sync"
path = "examples/datetime_sync.rs"
[[example]]
name = "gateway_discovery"
path = "examples/gateway_discovery.rs"
[[example]]
name = "logging_demo"
path = "examples/logging_demo.rs"
[[example]]
name = "memory_optimization_demo"
path = "examples/memory_optimization_demo.rs"
[[example]]
name = "packet_listener"
path = "examples/packet_listener.rs"
[[example]]
name = "secure_connection"
path = "examples/secure_connection.rs"
required-features = ["secure"]
[[example]]
name = "secure_tunnel_smoke"
path = "examples/secure_tunnel_smoke.rs"
required-features = ["secure"]
[[example]]
name = "send_telegrams"
path = "examples/send_telegrams.rs"
[[example]]
name = "sequence_validation_demo"
path = "examples/sequence_validation_demo.rs"
[[example]]
name = "tcp_connection_demo"
path = "examples/tcp_connection_demo.rs"
[[example]]
name = "telegram_monitor"
path = "examples/telegram_monitor.rs"
[[example]]
name = "tunnel_smoke"
path = "examples/tunnel_smoke.rs"
[[example]]
name = "tunneling_connection"
path = "examples/tunneling_connection.rs"
[[example]]
name = "value_reader"
path = "examples/value_reader.rs"
[[test]]
name = "gateway_listener_test"
path = "tests/gateway_listener_test.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "test_disconnect_protocol"
path = "tests/test_disconnect_protocol.rs"
[[test]]
name = "test_sequence_validation"
path = "tests/test_sequence_validation.rs"
[dependencies.aes]
version = "0.9"
optional = true
default-features = false
[dependencies.async-trait]
version = "0.1"
[dependencies.ctr]
version = "0.10"
optional = true
default-features = false
[dependencies.hex]
version = "0.4"
features = ["alloc"]
default-features = false
[dependencies.log]
version = "0.4"
[dependencies.pbkdf2]
version = "0.13"
features = ["hmac"]
optional = true
default-features = false
[dependencies.rand]
version = "0.10"
features = ["thread_rng"]
default-features = false
[dependencies.sha2]
version = "0.11"
optional = true
default-features = false
[dependencies.strum]
version = "0.28"
features = ["derive"]
optional = true
default-features = false
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.52"
features = [
"rt",
"macros",
"sync",
"time",
"net",
"io-util",
]
default-features = false
[dependencies.x25519-dalek]
version = "3.0"
features = ["static_secrets"]
optional = true
default-features = false
[dependencies.zeroize]
version = "1.9"
features = [
"derive",
"alloc",
]
optional = true
default-features = false
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.chrono]
version = "0.4"
[dev-dependencies.dotenvy]
version = "0.15.7"
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.proptest]
version = "1.11"
[dev-dependencies.tokio]
version = "1.52"
features = [
"rt-multi-thread",
"process",
"macros",
"signal",
]
[dev-dependencies.tokio-test]
version = "0.4"