CTCP socketsPub-sub

C-ROS

2023

Built an inter-process communication (IPC) library in C that replicates the core of ROS.

<200μs latency

Under the hood

At Project MANAS, I used ROS to pass messages between modules. As a curious experiment, I built an equivalent of its pub-sub messaging from scratch.

How it works

The library is written in raw C, over TCP, with no outside libraries. A master node keeps track of topics, and nodes publish or subscribe to them. It supports the patterns of a typical middleware architecture, including one-to-one, one-to-many and many-to-one setups.

Result

Messages moved between nodes in under 200μs.

I learned…

what ROS was quietly handling for me.