Part 1 of my blogging streak is here. So the point here is about choosing a good RPC and serialization framework for my build-my-own-ROS project. As I am still experimenting with a lot of frameworks and benchmarks, this post will be updated later.

Cap'n Proto

Very good overall especially the low overhead. However the size of the library is a little bit too large (~290K stripped and -gc-sectioned). Didn't test the overhead but a good post here shows that it virtually consume zero computing power. Still finding a way to squeeze it into a STM32, though.

After turning on the CAPNP_LITE flag, the executable size reduced to ~160K stripped and -gc-sectioned. Still not ideal.

UPDATE: A summary table:

Executable size with default Release of Cap'n Proto:

Optimization Unstripped Stripped
-Os 140K 127K
-O1 149K 136K
-O2 140K 127K
-O3 140K 127K