transforms_io 0.4.0

IO layer for the transforms crate with ROS2 and Minot.
[workspace]
members = [
  ".",
  "transforms_io_hiroz",
]

[package]
name = "transforms_io"
version = "0.4.0"
edition = "2024"
license = "MIT OR Apache-2.0"
description = "IO layer for the transforms crate with ROS2 and Minot."
repository = "https://codeberg.org/stelzo/transforms_io"
readme = "README.md"
keywords = ["ros2", "tf2", "transforms", "robotics"]
categories = ["science::robotics"]
authors = ["Christopher Sieh <stelzo@steado.de>"]
documentation = "https://docs.rs/transforms_io"
exclude = [
  "**/.github/**",
  "**/.forgejo/**",
  "**/tests/**",
  "**/benches/**",
  "**/target/**",
  "**/build/**",
  "**/dist/**",
  "**/docs/**",
  "**/venv/**",
  "**/vscode/**",
]
rust-version = "1.89.0"

[dependencies]
mt_pubsub = { version = "0.9", optional = true, default-features = false }

transforms = "1.4"
thiserror = "2.0"
log = "0.4"
nalgebra = "0.35"

r2r = { version = "0.9.5", optional = true }
ros2-client = { version = "0.10", optional = true }
ros2-interfaces-jazzy-serde = { version = "0.0.5", optional = true, features = [
  "std_msgs",
  "geometry_msgs",
  "tf2_msgs",
] }
ros2-interfaces-jazzy-rkyv = { version = "0.0.5", optional = true, features = [
  "std_msgs",
  "geometry_msgs",
  "tf2_msgs",
] }
tokio = { version = "1.49", optional = true, features = ["rt-multi-thread"] }
futures = { version = "0.3", optional = true }
futures-lite = { version = "2.6", optional = true }

[features]
default = ["mt-pubsub"]

r2r = ["dep:r2r", "dep:futures-lite"]
r2r-async = ["dep:r2r", "dep:futures"]

ros2-client = ["dep:ros2-client", "dep:ros2-interfaces-jazzy-serde"]
ros2-client-async = [
  "dep:ros2-client",
  "dep:ros2-interfaces-jazzy-serde",
  "dep:futures",
]

mt-pubsub = [
  "dep:mt_pubsub",
  "dep:ros2-interfaces-jazzy-rkyv",
  "dep:tokio",
  "dep:futures-lite",
]

shm = ["mt_pubsub?/shm"]

# [patch.crates-io]
# mt_pubsub = { path = "../minot/mt_pubsub" }