Embedded Proto

Embedded Proto is a C++ Protocol Buffer implementation specifically suitable for ARM Cortex-M microcontrollers.
It is small, reliable and easy to use.

What are protocol buffers?

What are protocol buffers?


Protocol Buffers (also referred to as “protobuf”) is a language-neutral, platform-neutral, extensible method of serializing structured data. Google developed it to communicate between their servers. It is used in the development of programs to communicate with each other, to interchange all kinds of structured information or for storing data.

The method firstly requires the description of the structure of some data (known as messages) in a protocol definition file (.proto). Thereafter, this must be run though a compiler/code generator called “protoc” to generate source code that can be invoked by either the sender or recipient of these data structures.

Since protoc supports many different programming languages, the generated source code can be used to easily write and read the structured data to and from a variety of data streams and using a variety of programming languages.

Learn more

Generate Code


Automatically generate cross platform code.

Integrate Embedded Proto into your toolchain and work smart!


Get the Code Today!

Why Embedded Proto?

Why EmbeddedProto?

Protocol buffers are not natively suitable for ARM Cortex-M microcontrollers, as the C++ code generated by protoc is designed for server and desktop processors. Embedded Proto however offers an alternative, generating code specifically for microcontrollers.

The Embedded Proto protoc plugin provides a user-friendly interface for the exchange data of between your IOT device and other devices, servers, apps or desktop applications in a standardized format.

The implementation focuses on a small ROM footprint and low RAM usage. No dynamic memory allocation is used, to make the code execution predictable. To further improve the reliability of the code, it is automatically verified to be in line with MISRA C++ guidelines.


Supports a wide range of microcontrollers

Small RAM and ROM footprints

No dynamic memory allocation required

Modern C ++

Professional support available

Easy cross-platform data models

Simply integrated in your toolchain

MISRA compatible code

Docs & Examples

Extensive documentation is available for Embedded Proto. Covering the basic operation, installation and usage.

For further background information various examples are available detailing specific toolchains and processors.

If you intend to dive deep into the workings of Embedded Proto the source code documentation is for you. It is available here.