[package]
edition = "2021"
rust-version = "1.85.0"
name = "voltage_modbus"
version = "0.7.2"
authors = ["Evan Liu <liuyifanz.1996@gmail.com>"]
build = false
exclude = [
".github/*",
"tests/*",
"docs/*",
"target/*",
"Cargo.lock",
"*.log",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A high-performance industrial Modbus library for Rust with TCP and RTU support"
homepage = "https://github.com/EvanL1/voltage_modbus"
documentation = "https://docs.rs/voltage_modbus"
readme = "README.md"
keywords = [
"modbus",
"industrial",
"automation",
"tcp",
"rtu",
]
categories = [
"network-programming",
"embedded",
]
license = "MIT"
repository = "https://github.com/EvanL1/voltage_modbus"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
targets = ["x86_64-unknown-linux-gnu"]
[features]
default = ["std"]
defmt = [
"dep:defmt",
"defmt/alloc",
]
embedded = [
"dep:embedded-io-async",
"dep:heapless",
]
igw = [
"std",
"dep:igw",
]
rtu = [
"std",
"dep:tokio-serial",
]
std = [
"dep:tokio",
"dep:thiserror",
"dep:bytes",
"dep:chrono",
]
tls = [
"std",
"dep:tokio-rustls",
]
[lib]
name = "voltage_modbus"
path = "src/lib.rs"
[[bin]]
name = "demo"
path = "src/bin/demo.rs"
required-features = ["std"]
[[example]]
name = "batch_read"
path = "examples/batch_read.rs"
required-features = ["std"]
[[example]]
name = "data_types"
path = "examples/data_types.rs"
required-features = ["std"]
[[example]]
name = "read_meter"
path = "examples/read_meter.rs"
required-features = ["std"]
[[example]]
name = "tcp_client"
path = "examples/tcp_client.rs"
required-features = ["std"]
[[bench]]
name = "throughput"
path = "benches/throughput.rs"
harness = false
required-features = ["std"]
[dependencies.bytes]
version = "1.4"
optional = true
[dependencies.chrono]
version = "0.4"
optional = true
[dependencies.crc]
version = "3.0"
[dependencies.defmt]
version = "0.3"
optional = true
[dependencies.embedded-io-async]
version = "0.6"
optional = true
default-features = false
[dependencies.heapless]
version = "0.8"
optional = true
default-features = false
[dependencies.igw]
version = "0.2"
optional = true
[dependencies.thiserror]
version = "1.0"
optional = true
[dependencies.tokio]
version = "1.0"
features = ["full"]
optional = true
[dependencies.tokio-rustls]
version = "0.26"
features = [
"ring",
"logging",
"tls12",
]
optional = true
default-features = false
[dependencies.tokio-serial]
version = "5.4"
optional = true
[dependencies.tracing]
version = "0.1"
default-features = false
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.4"
[dev-dependencies.rcgen]
version = "0.13"
[dev-dependencies.tokio-test]
version = "0.4"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1