[package]
name = "plc-comm-hostlink-rust"
version = "0.1.1"
edition = "2024"
rust-version = "1.85"
description = "Async Rust Host Link client based on plc-comm-hostlink-dotnet"
license = "MIT"
readme = "README.md"
repository = "https://github.com/fa-yoshinobu/plc-comm-hostlink-rust"
homepage = "https://github.com/fa-yoshinobu/plc-comm-hostlink-rust"
documentation = "https://docs.rs/plc-comm-hostlink-rust"
keywords = ["plc", "keyence", "hostlink", "async", "tokio"]
categories = ["network-programming", "asynchronous"]
include = [
    "Cargo.toml",
    "CHANGELOG.md",
    "README.md",
    "docs/**",
    "src/**",
    "examples/**",
    "tests/**",
]

[lib]
name = "plc_comm_hostlink"

[features]
default = []
cli = ["dep:futures-util", "dep:serde_json", "tokio/macros", "tokio/rt-multi-thread"]

[[bin]]
name = "hostlink_verify_client"
path = "src/bin/hostlink_verify_client.rs"
required-features = ["cli"]

[[example]]
name = "basic_high_level"
path = "examples/basic_high_level.rs"
required-features = ["cli"]

[dependencies]
async-stream = "0.3"
encoding_rs = "0.8"
futures-core = "0.3"
futures-util = { version = "0.3", optional = true }
indexmap = "2"
serde_json = { version = "1", optional = true }
thiserror = "2"
time = { version = "0.3", features = ["local-offset"] }
tokio = { version = "1", default-features = false, features = ["io-util", "net", "rt", "sync", "time"] }

[dev-dependencies]
futures-util = "0.3"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", default-features = false, features = ["io-util", "macros", "net", "rt-multi-thread", "sync", "time"] }
