GRAPE provides facilities to develop large distributed and embedded control applications, with hooks for instrumentation and remote monitoring. By large, I mean hundreds of nodes on a network of compute units running Linux (X86_64 and Aarch64).
It's also a hobby project that demonstrates principles that I follow in software development, and serves as a playground to evaluate modern C++ techniques in writing simple, expressive, and performant code for industrial applications. Features of this repo that I consider interesting:
- A modular build system
- A fast logging library
- A fast serialisation library
- A powerful configuration and scripting system
- Facilities for low latency realtime systems
- A stubbornly strict command line parser
- A scalable message-passing backend
- Minimal external dependencies