estd - Embedded Standard Library
Overview
The estd
library is the ESR Labs standard library for developing embedded
systems.
The C++ standard library heavily relies on dynamic memory allocation. This is not acceptable in most embedded systems, effectively preventing us from using a vast majority of features of the standard library. In embedded software development, we also struggle with very limited support for newer C++ standards in the compilers that we have to use.
estd
’s purpose is to fill those gaps and provide developers at ESR Labs
basic tools for building embedded software in C++. It contains container
classes, implementations of generic algorithms, helpful vocabulary types (like
optional
, variant
, result
) and many other utilities.
Some parts of the estd
API are designed to mimic the C++ standard library,
while some are invented at ESR Labs. To facilitate integration and enable usage
of e.g. <algorithm>
, the container types available in estd
expose
interfaces compatible with the C++ STL.
User and Design Documentation
The user documentation helps end-users to understand and effectively use the estd
module.
The design documentation helps developers to understand the design of the estd
module.