How telekinesis-ai/babyros works
BabyROS is a lightweight Python robotics communication library built on Zenoh. Applications configure a session, then publish/subscribe on topics or exchange request/reply messages through clients and servers; payloads are encoded for transport and subscribers dispatch received data to callbacks. Session management tracks active nodes and supports topic-liveliness discovery, including the CLI’s live listing. The excerpts establish these core relationships; other documented capabilities are represented only where the tree or README supports them.
Main entry points: node.py Subscriber · serializer.py Zenoh codec · __init__.py Configuration API · cli.py Topic CLI
Components 12
Session and configuration
- Configuration API
src/babyros/__init__.py - Session manager
src/babyros/node.py
Topic messaging
- Publisher
src/babyros/node.py - Subscriber
src/babyros/node.py
Encoding and discovery
- Zenoh codec
src/babyros/serializer.py - Liveliness discovery
src/babyros/node.py - Topic CLI
src/babyros/cli.py
Other components
- Application
- Zenoh network
- Datatype serializer
Connections 31
- Application → Configuration API: configures
- Configuration API → Session manager: sets session config
- Application → Publisher: publishes via
- Application → Subscriber: subscribes via
- Application → Server: serves via
- Application → Client: requests via
- Publisher → Session manager: gets session
- Subscriber → Session manager: gets session
- Server → Session manager: gets session
- Client → Session manager: gets session
- Session manager → Zenoh network: opens session
- Publisher → Zenoh codec: encodes payload
- Publisher → Zenoh network: publishes
- Zenoh network → Subscriber: delivers samples
- Subscriber → Zenoh codec: decodes payload
- Subscriber → Application: dispatches callback
- Application → Subscriber: provides callback
- Zenoh network → Server: delivers queries
- Server → Zenoh codec: encodes replies
- Server → Application: dispatches request callback
- Application → Server: provides callback
- Client → Zenoh codec: encodes request
- Client → Zenoh network: sends query
- Client → Zenoh codec: decodes replies
- Zenoh codec → Datatype serializer: serializes datatypes
- Publisher → Liveliness discovery: declares token
- Subscriber → Liveliness discovery: declares token
- Server → Liveliness discovery: declares token
- Liveliness discovery → Zenoh network: queries or watches
- Topic CLI → Configuration API: configures discovery
- Topic CLI → Liveliness discovery: lists topics