[package] name = "ros2-client" version = "0.7.6" edition = "2018" authors = ["Juhana Helovuo "] description = "ROS2 client library based on RustDDS" readme = "README.md" keywords = ["network","protocol","dds","rtps"] license = "Apache-2.0" homepage = "https://atostek.com/en/products/rustdds/" repository = "https://github.com/jhelovuo/ros2-client/" categories = ["network-programming", "science::robotics"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] # declare the existence of "security" feature (Secure ROS 2 support) security = [ "rustdds/security" # Requires "security" in RustDDS also ] # The ROS 2/RMW-defined Gid (global identifer) type (see src/gid.rs) has changed between # ROS2 releases Humble and Iron. See # https://github.com/ros2/rmw/commit/8995d9faa8ecb39f62cc4e2cb65abb63489ae4c6 # These are incompatible and apparently not run-time negotiable/detectable over the wire. # # ros2-client now uses the newer Iron/Jazzy/... version as a default. # Use this feature to revert back to older version. # There is no known easy and reliable way to talk to both Humble and Iron at the same time. # # Using a wrong Gid format prevents ROS2 seeing Nodes published by ros2-client # so that `ros2 node list` or `rqt` Node Graph do not show nodes. # Topic communication may still work, but Services likely do not. pre-iron-gid = [] [dependencies] # rustdds = { path = "../RustDDS" , version = "~0.11.1" } # dev setting # rustdds = { git = "https://github.com/jhelovuo/RustDDS.git" } rustdds = { version = "~0.11.1" } # release setting mio = "^0.6.23" mio-extras = "2.0.6" log = "0.4.11" serde = { version = "1.0", features = ["derive"] } serde_repr = "0.1" cdr-encoding-size = { version="^0.5" } lazy_static = "1.4.0" uuid = { version = "1.3.1", features = ["v4", "fast-rng", "macro-diagnostics", "serde"] } futures = "^0.3.28" pin-utils = "0.1.0" async-channel = "2.3" bytes = { version = "1.5.0", features = ["serde", "std"]} chrono = { version = ">=0.4.35" } # actions need timestamps nom = {version = "7.1.3", features = ["alloc"] } # for msggen clap = "4.4.3" # for msggen itertools = "0.11.0" # for msggen bstr = "1.6.2" widestring = "1.0" # msggen libc = "0.2.153" [dev-dependencies] log = "0.4" termion = "1.5.5" pretty_env_logger = "0.4.0" # turle_teleop log4rs = "1.2" test-case = "1.2.0" ctrlc = "3.1.6" # async examples smol = "1.3" async-io = "2.2.0"