arobenko
Funding Links: https://github.com/sponsors/arobenko
- Name: Alex Robenko
- Location: Brisbane, Australia
- Kind: user
- Followers: 146
- Following: 2
- Total stars: 485
- Repositories count: 13
- Created at: 2022-11-06T06:44:40.548Z
- Updated at: 2025-06-29T09:57:40.174Z
- Last synced at: 2025-06-29T09:57:40.174Z
GitHub Sponsors Profile
Over the years I had to implement multiple binary communication protocols used by various embedded systems. Every time I got annoyed and frustrated over a necessity to manually write error prone boilerplate code. There are so many available serialization tools and libraries (such as protobuf, and many others), but not a single one was adequate for my needs. Most of these tools focus on data serialization and facilitation of RPCs. Their main goal is to make data serialization and network transfer as quick as possible. It is a noble cause, but not really a first priority for embedded systems. For the latter it is much more important to protect against the malformed data and reduce amount of boilerplate code than to gain a couple of extra CPU cycles when performing the (de)serialization.
In all the solutions I've reviewed and analyzed the generated code is not customizable and in most cases not really suitable for embedded systems, especially bare-metal ones. There are no means to introduce some compile or generation time updates such as configuring polymorphic interfaces required for a particular application or choosing particular data structures, disable usage of RTTI or exceptions, etc... The code generated by all the tools still requires a significant amount of integration boilerplate code to be written. All of the available solutions focus on supporting multiple programming languages in their code generation rather than a quality of the code for a particular language (C++ in my case).
To rectify the situation I decided to implement my own C++ and embedded systems focused solution. It's called CommsChampion Ecosystem. There are multiple repositories all hosted under the roof of the commschamp github organization
- Current Sponsors: 2
- Past Sponsors: 0
- Total Sponsors: 2
- Minimum Sponsorship: $1.00
Featured Works
commschamp/comms_champion
C++(11) library to implement and tools to monitor binary communication protocols
Language: CMake - Stars: 245commschamp/CommsDSL-Specification
Specification of Domain Specific Language (DSL) to define binary communication protocol for CommsChampion Ecosystem.
Language: CMake - Stars: 8commschamp/commsdsl
DSL schemas parser and code generators for CommsChampion Ecosystem
Language: C++ - Stars: 21commschamp/cc_tutorial
Tutorial for CommsChampion Ecosystem
Language: C++ - Stars: 12commschamp/cc.ublox.commsdsl
CommsDSL schema-based definition of UBLOX protocol
Language: CMake - Stars: 42commschamp/cc.ublox.generated
UBLOX (UBX) protocol definition, generated by commsdsl2comms out of cc.ublox.commsdsl schema
Language: C++ - Stars: 19Active Sponsors
Past Sponsors
Sponsor Breakdown
- User: 1