[package]
edition = "2021"
name = "hdds"
version = "1.1.1"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance DDS (Data Distribution Service) implementation in pure Rust"
readme = "README.md"
keywords = [
"dds",
"rtps",
"middleware",
"pubsub",
"realtime",
]
categories = ["network-programming"]
license = "Apache-2.0 OR MIT"
repository = "https://git.hdds.io/hdds/hdds.git"
[features]
bench-stress = []
cloud-discovery = [
"dep:reqwest",
"dep:serde",
"dep:serde_json",
"dep:tokio",
]
default = [
"xtypes",
"qos-loaders",
]
dialect-coredx = []
dialect-dust = []
dialect-gurum = []
dialect-intercom = []
dialect-opensplice = []
dynamic-types = []
k8s = []
logging = []
lowbw-lz4 = ["dep:lz4_flex"]
qos-loaders = [
"dep:roxmltree",
"dep:serde",
"dep:serde_yaml",
]
quic = [
"dep:quinn",
"dep:rustls",
"dep:rustls-pemfile",
"dep:rcgen",
"dep:tokio",
]
rpc = ["dep:tokio"]
rti-hexdump = []
security = [
"dep:ring",
"dep:x509-parser",
"dep:pem",
"dep:webpki",
"dep:base64",
"dep:zeroize",
]
tcp-tls = [
"dep:rustls",
"dep:webpki-roots",
"dep:rustls-pemfile",
]
telemetry = []
trace = ["logging"]
type-lookup = ["xtypes"]
typed-test = []
xtypes = ["dep:md-5"]
[lib]
name = "hdds"
path = "src/lib.rs"
[[example]]
name = "basic_pubsub"
path = "examples/basic_pubsub.rs"
[[example]]
name = "cross_lang_test"
path = "examples/cross_lang_test.rs"
[[example]]
name = "debugger_demo"
path = "examples/debugger_demo.rs"
[[example]]
name = "debugger_demo_alt"
path = "examples/debugger_demo_alt.rs"
[[example]]
name = "fastdds_publisher_simple"
path = "examples/fastdds_publisher_simple.rs"
[[example]]
name = "fastdds_subscriber_simple"
path = "examples/fastdds_subscriber_simple.rs"
[[example]]
name = "hdds_list_participants"
path = "examples/hdds_list_participants.rs"
[[example]]
name = "latency_benchmark"
path = "examples/latency_benchmark.rs"
[[example]]
name = "live_capture"
path = "examples/live_capture.rs"
[[example]]
name = "micro_interop"
path = "examples/micro_interop.rs"
[[example]]
name = "multi_node_discovery"
path = "examples/multi_node_discovery.rs"
[[example]]
name = "multi_node_pubsub"
path = "examples/multi_node_pubsub.rs"
[[example]]
name = "reliable_demo"
path = "examples/reliable_demo.rs"
[[example]]
name = "reliable_qos_demo"
path = "examples/reliable_qos_demo.rs"
[[example]]
name = "rti_temperature_subscriber"
path = "examples/rti_temperature_subscriber.rs"
[[example]]
name = "rti_temperature_subscriber_idlgen"
path = "examples/rti_temperature_subscriber_idlgen.rs"
[[example]]
name = "rti_temperature_subscriber_v65"
path = "examples/rti_temperature_subscriber_v65.rs"
[[example]]
name = "shape_main"
path = "examples/shape_main.rs"
[[example]]
name = "shm_multiprocess"
path = "examples/shm_multiprocess.rs"
[[example]]
name = "temperature_generated"
path = "examples/temperature_generated.rs"
[[example]]
name = "temperature_publisher_loop"
path = "examples/temperature_publisher_loop.rs"
[[example]]
name = "temperature_pubsub"
path = "examples/temperature_pubsub.rs"
[[example]]
name = "temperature_rti"
path = "examples/temperature_rti.rs"
[[example]]
name = "temperature_validation"
path = "examples/temperature_validation.rs"
[[example]]
name = "test_spdp_discovery"
path = "examples/test_spdp_discovery.rs"
[[example]]
name = "test_two_participant_discovery"
path = "examples/test_two_participant_discovery.rs"
[[example]]
name = "tsn_latency"
path = "examples/tsn_latency.rs"
[[example]]
name = "tsn_probe"
path = "examples/tsn_probe.rs"
[[example]]
name = "tsn_pubsub"
path = "examples/tsn_pubsub.rs"
[[example]]
name = "tsn_rtt"
path = "examples/tsn_rtt.rs"
[[example]]
name = "typed_cross_lang_test"
path = "examples/typed_cross_lang_test.rs"
required-features = ["typed-test"]
[[example]]
name = "waitset_demo"
path = "examples/waitset_demo.rs"
[[test]]
name = "discovery_integration"
path = "tests/discovery_integration.rs"
[[test]]
name = "doc_integration"
path = "tests/doc_integration.rs"
[[test]]
name = "frag_data_frag"
path = "tests/frag_data_frag.rs"
[[test]]
name = "frag_nack_frag"
path = "tests/frag_nack_frag.rs"
[[test]]
name = "frag_nack_frag_loss"
path = "tests/frag_nack_frag_loss.rs"
[[test]]
name = "golden_vectors"
path = "tests/golden_vectors.rs"
[[test]]
name = "interop_reliable_fastdds"
path = "tests/interop_reliable_fastdds.rs"
[[test]]
name = "mobility_e2e"
path = "tests/mobility_e2e.rs"
[[test]]
name = "pl_cdr2_poly3d"
path = "tests/pl_cdr2_poly3d.rs"
[[test]]
name = "publisher_subscriber"
path = "tests/publisher_subscriber.rs"
[[test]]
name = "qos_deadline"
path = "tests/qos_deadline.rs"
[[test]]
name = "qos_destination_order"
path = "tests/qos_destination_order.rs"
[[test]]
name = "qos_durability_service"
path = "tests/qos_durability_service.rs"
[[test]]
name = "qos_entity_factory"
path = "tests/qos_entity_factory.rs"
[[test]]
name = "qos_latency_budget"
path = "tests/qos_latency_budget.rs"
[[test]]
name = "qos_lifespan"
path = "tests/qos_lifespan.rs"
[[test]]
name = "qos_liveliness"
path = "tests/qos_liveliness.rs"
[[test]]
name = "qos_metadata"
path = "tests/qos_metadata.rs"
[[test]]
name = "qos_ownership"
path = "tests/qos_ownership.rs"
[[test]]
name = "qos_partition"
path = "tests/qos_partition.rs"
[[test]]
name = "qos_presentation"
path = "tests/qos_presentation.rs"
[[test]]
name = "qos_reader_data_lifecycle"
path = "tests/qos_reader_data_lifecycle.rs"
[[test]]
name = "qos_resource_limits"
path = "tests/qos_resource_limits.rs"
[[test]]
name = "qos_time_based_filter"
path = "tests/qos_time_based_filter.rs"
[[test]]
name = "qos_transport_priority"
path = "tests/qos_transport_priority.rs"
[[test]]
name = "qos_writer_data_lifecycle"
path = "tests/qos_writer_data_lifecycle.rs"
[[test]]
name = "reliable_repair"
path = "tests/reliable_repair.rs"
[[test]]
name = "rtps_conformance"
path = "tests/rtps_conformance.rs"
[[test]]
name = "rtps_port_mapping"
path = "tests/rtps_port_mapping.rs"
[[test]]
name = "serialization_roundtrip"
path = "tests/serialization_roundtrip.rs"
[[test]]
name = "stress_discovery"
path = "tests/stress_discovery.rs"
[[test]]
name = "stress_participants"
path = "tests/stress_participants.rs"
[[test]]
name = "stress_reconnection"
path = "tests/stress_reconnection.rs"
[[test]]
name = "stress_topics"
path = "tests/stress_topics.rs"
[[test]]
name = "transient_local_late_joiner"
path = "tests/transient_local_late_joiner.rs"
[[test]]
name = "unicast_routing_e2e"
path = "tests/unicast_routing_e2e.rs"
[[bench]]
name = "discovery"
path = "benches/discovery.rs"
harness = false
[[bench]]
name = "read_latency"
path = "benches/read_latency.rs"
harness = false
[[bench]]
name = "reader_api"
path = "benches/reader_api.rs"
harness = false
[[bench]]
name = "runtime"
path = "benches/runtime.rs"
harness = false
[[bench]]
name = "stress_multi_node"
path = "benches/stress_multi_node.rs"
harness = false
required-features = ["bench-stress"]
[[bench]]
name = "stress_phase7a"
path = "benches/stress_phase7a.rs"
harness = false
required-features = ["bench-stress"]
[[bench]]
name = "stress_utils"
path = "benches/stress_utils.rs"
[[bench]]
name = "throughput"
path = "benches/throughput.rs"
harness = false
[[bench]]
name = "write_latency"
path = "benches/write_latency.rs"
harness = false
[dependencies.arc-swap]
version = "1.7"
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.crossbeam]
version = "0.8"
[dependencies.dashmap]
version = "6"
[dependencies.flate2]
version = "1.0"
[dependencies.hdds-codegen]
version = "1.0.9"
[dependencies.libc]
version = "0.2"
[dependencies.local-ip-address]
version = "0.6"
[dependencies.log]
version = "0.4"
[dependencies.lru]
version = "0.12"
[dependencies.lz4_flex]
version = "0.11"
optional = true
[dependencies.md-5]
version = "0.10"
optional = true
[dependencies.mio]
version = "1.0"
features = [
"net",
"os-poll",
]
[dependencies.parking_lot]
version = "0.12"
[dependencies.pem]
version = "3.0"
optional = true
[dependencies.quinn]
version = "0.11"
features = [
"runtime-tokio",
"rustls",
]
optional = true
default-features = false
[dependencies.rcgen]
version = "0.13"
optional = true
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
]
optional = true
default-features = false
[dependencies.ring]
version = "0.17"
optional = true
[dependencies.roxmltree]
version = "0.20"
optional = true
[dependencies.rustls]
version = "0.23"
features = [
"std",
"tls12",
"ring",
]
optional = true
default-features = false
[dependencies.rustls-pemfile]
version = "2.1"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.serde_yaml]
version = "0.9"
optional = true
[dependencies.socket2]
version = "0.5"
[dependencies.tokio]
version = "1.0"
features = [
"rt",
"time",
"sync",
"macros",
]
optional = true
[dependencies.webpki]
version = "0.22"
optional = true
[dependencies.webpki-roots]
version = "0.26"
optional = true
[dependencies.x509-parser]
version = "0.16"
optional = true
[dependencies.zeroize]
version = "1.7"
optional = true
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.fastrand]
version = "2"
[dev-dependencies.tempfile]
version = "3.8"
[lints.clippy]
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
doc_markdown = "allow"
explicit_iter_loop = "allow"
float_cmp = "allow"
if_not_else = "allow"
ignored_unit_patterns = "allow"
items_after_statements = "allow"
map_unwrap_or = "allow"
match_same_arms = "allow"
match_wild_err_arm = "allow"
match_wildcard_for_single_variants = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
needless_continue = "allow"
needless_pass_by_value = "allow"
no_effect_underscore_binding = "allow"
redundant_closure_for_method_calls = "allow"
shadow_unrelated = "allow"
similar_names = "allow"
single_match_else = "allow"
too_many_lines = "allow"
uninlined_format_args = "allow"
unreadable_literal = "allow"
wildcard_imports = "allow"