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
tcpcarrier is supported.udpand special-purpose carriers are not supported.