YARP Transports¶
A subset of the network protocols used in YARP (called “carriers” there) is supported by RSB.
The YARP transports for RSB map the following URI schemas to YARP network protocols:
tcp+yarp
(See TCP+YARP Transport (without Nameservice operations))
Direct connections to the TCP endpoints of YARP ports.
yarp
(See YARP Transport (with Nameservice operations))
TCP+YARP Transport (without Nameservice operations)¶
Direct connections to the TCP endpoints of YARP ports. This low-level protocol requires knowing the TCP endpoint of a YARP port. Knowing the port name is not sufficient on this level.
The details of this protocol are documented here.
Note
This schema is supported in the C++ and Common Lisp implementations of RSB.
Options¶
The following configuration options are accepted:
Name Type Comment
+ transport
+-- tcp+yarp
+---- host string Hostname on which endpoint runs
+---- port uint16 Port on which endpoint listens
Implementations¶
Language |
File(s) |
---|---|
C++ |
“1.0” branch of https://github.com/open-rsx/rsb-yarp-cpp src/rsb/transport/yarp |
Java |
not implemented yet |
Python |
not implemented yet |
Common Lisp |
“1.0” branch of https://github.com/open-rsx/rsb-yarp-cl src/transport/yarptcp |
YARP Transport (with Nameservice operations)¶
Connections to YARP ports are made via the YARP nameservice. In this case, the YARP nameservice is consulted to determine the (TCP) endpoint for a YARP port name. After that, a low-level connection is established, if the carrier of the port is supported.
For this schema, nameservice queries which yield multiple results or
change over time can lead to a changing set of connections. For
example, the URL yarp:/iCubSim/cam
could cause connections to be
established to YARP ports named /iCubSim/cam/left
,
/iCubSim/cam/left/fovea
, /iCubSim/cam/right
,
/iCubSim/cam/right/fovea
if these ports are registered in the
YARP nameservice.
Note
This schema is only supported in the Common Lisp implementation of RSB.
Options¶
The following configuration options are accepted:
Name Type Comment
+ transport
+-- yarp
+---- host string Hostname or address on which the YARP nameserver listens
+---- port uint16 Port on which the YARP nameserver listens
Implementations¶
Language |
File(s) |
---|---|
C++ |
not implemented yet |
Java |
not implemented yet |
Python |
not implemented yet |
Common Lisp |
“1.0” branch of https://github.com/open-rsx/rsb-yarp-cl src/transport/yarp |
Limitations¶
The connectors provided by the YARP transports for RSB are not proper YARP ports:
They do not accept incoming connections
They do not support the port management protocol (except the part required for connecting to other ports)
Only the
tcp
carrier is supported.udp
and special-purpose carriers are not supported.