Home

Awesome

Overview

This project is a member of CommsChampion Ecosystem. It provides multiple code generators to produce C++11 binary protocol definition code as well as other satellite components that can be used to (fuzz) test the protocol definition, visualize the message contents, debug the protocol messages exchange, as well as create bindings (glue code) for other high level programming languages.

What's Inside

License

The code of this project (libraries and tools it contains) is licensed under Apache v2.0 license.

The generated code has no license, the vendor is free to pick any as long as it's compatible with the license of the relevant CommsChampion Ecosystem project.

Tutorial

The cc_tutorial project contains a tutorial on how to use CommsDSL to define binary communication protocol, commsdsl2comms to generate code, and COMMS Library to customize and integrate the protocol definition with the business logic of the application.

How to Build

Detailed instructions on how to build and install all the components can be found in doc/BUILD.md file.

Other Documentation

Please check the doc folder for the available additional documentation.

Versioning

This project will use Semantic Versioning, where MAJOR number will be equal to the latest DSL version (The first number of CommsDSL version) it supports. The MINOR number will indicate various improvements in the code of this repository, and PATCH number will indicate various bug fixes.

Supported Compilers

This project (the code generator and CommsDSL parsing library) is implemented using C++17 programming language. As the result, the supported compilers are:

The generated projects however contain C++11 valid code and supports a bit earlier versions of the compilers:

Branching Model

This repository will follow the Successful Git Branching Model.

The master branch will always point to the latest release, the development is performed on develop branch. As the result it is safe to just clone the sources of this repository and use it without any extra manipulations of looking for the latest stable version among the tags and checking it out.

Contact Information

For bug reports, feature requests, or any other question you may open an issue here in github or e-mail me directly to: arobenko@gmail.com. I usually respond within 24 hours.