[package] name = "roslibrust" version = "0.11.1" authors = ["carter ", "ssnover "] edition = "2021" license = "MIT" readme = "../README.md" description = "An library for interfacing with the ROS's rosbridge_server" repository = "https://github.com/Carter12s/roslibrust" keywords = ["ROS", "robotics", "websocket", "json", "async"] categories = ["science::robotics"] [dependencies] abort-on-drop = "0.2" anyhow = "1.0" byteorder = "1.4" dashmap = "5.3" deadqueue = "0.2.4" # .4+ is required to fix bug with missing tokio dep futures = "0.3" futures-util = "0.3" lazy_static = "1.4" log = "0.4" proc-macro2 = "1.0" rand = "0.8" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" smart-default = "0.6" thiserror = "1.0" tokio = { version = "1.20", features = [ "net", "macros", "time", "rt-multi-thread", ] } tokio-tungstenite = { version = "0.17" } uuid = { version = "1.1", features = ["v4"] } roslibrust_codegen_macro = { path = "../roslibrust_codegen_macro", version = "0.11.1" } roslibrust_codegen = { path = "../roslibrust_codegen", version = "0.11.1" } reqwest = { version = "0.11", optional = true } # Only used with native ros1 serde_xmlrpc = { version = "0.2", optional = true } # Only used with native ros1 roslibrust_serde_rosmsg = { version = "0.3", optional = true } # Only used with native ros1 hyper = { version = "0.14", features = [ "server", ], optional = true } # Only used with native ros1 gethostname = { version = "0.4", optional = true } # Only used with native ros1 regex = { version = "1.9", optional = true } # Only used with native ros1 # TODO I think we should move rosapi into its own crate... serde-big-array = { version = "0.5", optional = true } # Only used with rosapi [dev-dependencies] env_logger = "0.10" test-log = "0.2" simple_logger = "5.0" serde-big-array = "0.5" [features] default = [] # Note: all does not include running_bridge as that is only intended for CI all = [] # Provides a rosapi rust interface rosapi = ["serde-big-array"] # Intended for use with tests, includes tests that rely on a locally running rosbridge running_bridge = [] # For use with integration tests, indicating we are testing integration with a ros1 bridge ros1_test = ["running_bridge", "ros1"] # For use with integration tests, indicates we are testing integration with a ros2 bridge ros2_test = ["running_bridge"] # Provides access to experimental abstract trait topic_provider topic_provider = [] # Provides a ros1 xmlrpc / TCPROS client ros1 = [ "dep:serde_xmlrpc", "dep:reqwest", "dep:hyper", "dep:gethostname", "dep:regex", "dep:roslibrust_serde_rosmsg", ] [[test]] name = "ros1_xmlrpc" path = "tests/ros1_xmlrpc.rs" required-features = ["ros1_test", "ros1"] [package.metadata.docs.rs] features = ["ros1"]