# Achievements

After all this effort of creating the generic `comms` library, let's summarise what has been achieved.

* The communication protocol implementation becomes easy and straightforward

  process, using mostly declarative statements of classes and types definitions

  without unnecessary boilerplate code. The C++ compiler does all the dirty and

  boring work of generating the required code.
* The default logic, provided by the library, can easily be extended and/or

  overridden using class inheritance and virtual functions.
* The protocol implementation doesn't enforce any restrictions on data structures

  being used, and as a result it can be reused in any system, including bare-metal

  ones.
* There is no dependency on any specific I/O link and the way the data is

  being communicated.&#x20;
* The application level messages and transport data are completely independent,

  which allows usage of the same application level messages over different I/O

  links, which require different transport wrapping, at the same time.
