Expand description
meadow
is an experimental robotics-focused publish/request middleware
for embedded Linux. It is built with a high preference for catching errors
at compile-time over runtime and a focus on developer ergonomics, and can
natively operate on any serde
-compatible data type.
It uses a star-shaped network topology, with a focus on ease-of-use and transparent design and operation. It is more similar to ZeroMQ than to higher-level frameworks like ROS/2, but uses a central coordination process similar to MOOS-IvP. Meadow currently supports the following messaging patterns over different transport protocols:
Protocol | Publish | Request | Subscribe | Encryption |
---|---|---|---|---|
TCP | X | X | X | |
UDP | X | X | X | |
QUIC | X | X | X | X |
Re-exports
pub use crate::error::Error;
pub use crate::host::Host;
pub use crate::host::HostConfig;
pub use crate::msg::GenericMsg;
pub use crate::msg::Message;
pub use crate::msg::Msg;
pub use crate::msg::MsgType;
pub use crate::networks::get_ip;
pub use crate::node::tcp::await_response;
pub use crate::node::tcp::send_msg;
pub use crate::node::Active;
pub use crate::node::Idle;
pub use crate::node::NetworkConfig;
pub use crate::node::Node;
pub use crate::node::NodeConfig;
pub use crate::node::Subscription;
pub use crate::node::Tcp;
pub use crate::node::Udp;
Modules
- Error types used by Meadow
- Central coordination process, which stores published data and responds to requests
- Message definitions for publish/request functions
- Network-based utility module
- Objects that publish and request strongly-typed data to named topics on the Host
Traits
- Re-export of Serde’s
Serialize
andDeserialize
traits A data structure that can be deserialized from any data format supported by Serde. - Re-export of Serde’s
Serialize
andDeserialize
traits A data structure that can be serialized into any data format supported by Serde.
Derive Macros
- Re-export of Serde’s
Serialize
andDeserialize
traits - Re-export of Serde’s
Serialize
andDeserialize
traits