Embedded Template Library
The ETL is my reusable collection of C++ code, intended primarily for embedded systems.
If you can, you should probably just use the normal C++ standard library — but often, I can’t. You see, the C++ standard library works best if you’ve got:
- Exceptions, and
- Dynamic memory allocation (the heap).
These are both nice features (I’m a rare pro-exceptions person) but they don’t work well in a hard real-time environment.
Since this gave me an opportunity to redesign the C++ standard library, I’ve also incorporated a lot of my ideas on robust software engineering and API design, which were tested during my time leading the firmware effort for Loon. (By convergent evolution, parts of ETL resemble Rust’s standard library.)
The ETL is intended to be used as a
git submodule and includes a Cobble
BUILD file — though nothing prevents you from doing something else with it, like writing a Makefile.