Description: embedded-infra-lib is a set of C++ libraries and headers that provide heap-less, STL like, infrastructure for embedded software development.
Note: This repository is a copy of the original amp-embedded-infra-lib repository.
EmIL requires:
- A recent C++ compiler that supports C++20 at minimum (for a host build it should support std::filesystem).
- CMake 3.24 or higher.
EmIL is know to build under the following configurations:
- Windows from Visual Studio 2022 onwards.
- Linux from GCC 7 onwards.
- macOS from XCode 12 and target platform 11.0 onwards.
EmIL can be built by-itself, for example to execute the included micro-tests, or it can be built as part of a larger project. This paragraph describes how to build EmIL by-itself.
cmake -B Build
cmake --build BuildAfter EmIL has been built. The included automated tests can be run with CTest like so:
ctest -D Experimental -C DebugCode examples can be found under the examples folder.
Documentation is available in the docs folder:
- Overview - Introduction to embedded-infra-lib
- Execution Model - Event-driven execution model
- Memory Range - MemoryRange class template
- Containers - Bounded and intrusive containers
- Echo - ECHO RPC mechanism
- Sesame - SESAME serial protocol
- Network Connections - Connection and ConnectionObserver
- Coding Standard - C++ coding standard for embedded projects
embedded-infra-lib uses semantic versioning and conventional commits.
Please refer to our Contributing guide when you want to contribute to this project.
embedded-infra-lib is licensed under the MIT license. See LICENSE file.