oms-modbus 0.2.0

[Preview] High-performance, transport-generic Modbus library. Full Master (client) and Slave (server) for TCP, RTU, ASCII — unified API, passive bus monitoring, spec-compliant timing.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.80"
name = "oms-modbus"
version = "0.2.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "[Preview] High-performance, transport-generic Modbus library. Full Master (client) and Slave (server) for TCP, RTU, ASCII — unified API, passive bus monitoring, spec-compliant timing."
homepage = "https://github.com/orangehorsetech/oms-modbus"
documentation = "https://docs.rs/oms-modbus"
readme = "README.md"
keywords = [
    "modbus",
    "tcp",
    "rtu",
    "ascii",
    "industrial",
]
categories = [
    "embedded",
    "network-programming",
    "asynchronous",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/orangehorsetech/oms-modbus"

[package.metadata.docs.rs]
rustdoc-args = []

[lib]
name = "oms_modbus"
path = "src/lib.rs"

[[example]]
name = "all_function_codes"
path = "examples/all_function_codes.rs"

[[example]]
name = "bus_monitor"
path = "examples/bus_monitor.rs"

[[example]]
name = "bus_timing"
path = "examples/bus_timing.rs"

[[example]]
name = "custom_service"
path = "examples/custom_service.rs"

[[example]]
name = "custom_tap"
path = "examples/custom_tap.rs"

[[example]]
name = "dynamic_server"
path = "examples/dynamic_server.rs"

[[example]]
name = "file_recorder"
path = "examples/file_recorder.rs"

[[example]]
name = "generic_transport"
path = "examples/generic_transport.rs"

[[example]]
name = "reconnect"
path = "examples/reconnect.rs"

[[example]]
name = "reconnect_serial"
path = "examples/reconnect_serial.rs"

[[example]]
name = "rtu_server"
path = "examples/rtu_server.rs"

[[example]]
name = "server_with_hook"
path = "examples/server_with_hook.rs"

[[example]]
name = "tcp_client"
path = "examples/tcp_client.rs"

[[example]]
name = "tcp_client_auto_tid"
path = "examples/tcp_client_auto_tid.rs"

[[example]]
name = "tcp_client_gateway"
path = "examples/tcp_client_gateway.rs"

[[example]]
name = "tcp_server"
path = "examples/tcp_server.rs"

[[test]]
name = "ascii_server_tests"
path = "tests/ascii_server_tests.rs"

[[test]]
name = "bus_timing_tests"
path = "tests/bus_timing_tests.rs"

[[test]]
name = "capture_tests"
path = "tests/capture_tests.rs"

[[test]]
name = "codec_resilience"
path = "tests/codec_resilience.rs"

[[test]]
name = "codec_tests"
path = "tests/codec_tests.rs"

[[test]]
name = "error_tests"
path = "tests/error_tests.rs"

[[test]]
name = "frame_tests"
path = "tests/frame_tests.rs"

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"

[[test]]
name = "options_tests"
path = "tests/options_tests.rs"

[[test]]
name = "readme_examples"
path = "tests/readme_examples.rs"

[[test]]
name = "reconnect_tests"
path = "tests/reconnect_tests.rs"

[[test]]
name = "recording_tests"
path = "tests/recording_tests.rs"

[[test]]
name = "rtu_server_tests"
path = "tests/rtu_server_tests.rs"

[[test]]
name = "serial_live_test"
path = "tests/serial_live_test.rs"

[[test]]
name = "serial_reconnect_tests"
path = "tests/serial_reconnect_tests.rs"

[[test]]
name = "server_hook_tests"
path = "tests/server_hook_tests.rs"

[[test]]
name = "slave_store_tests"
path = "tests/slave_store_tests.rs"

[[test]]
name = "sniff_io_tests"
path = "tests/sniff_io_tests.rs"

[[test]]
name = "spec_compliance"
path = "tests/spec_compliance.rs"

[[bench]]
name = "crc_bench"
path = "benches/crc_bench.rs"
harness = false

[[bench]]
name = "pdu_bench"
path = "benches/pdu_bench.rs"
harness = false

[[bench]]
name = "transport_bench"
path = "benches/transport_bench.rs"
harness = false

[dependencies.async-trait]
version = "0.1"

[dependencies.bytes]
version = "1"

[dependencies.futures-util]
version = "0.3"
features = ["sink"]

[dependencies.log]
version = "0.4"

[dependencies.thiserror]
version = "1"

[dependencies.tokio]
version = "1"
features = [
    "net",
    "rt",
    "time",
    "sync",
    "macros",
    "io-util",
]

[dependencies.tokio-serial]
version = "5"

[dependencies.tokio-util]
version = "0.7"
features = ["codec"]

[dev-dependencies.crc]
version = "3"

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

[dev-dependencies.tokio]
version = "1"
features = ["rt-multi-thread"]