Awesome Open Source
Awesome Open Source


Embedded Artistry Public Resources

Contains templates, documents, and source code examples referenced on

Table of Contents

  1. Requirements
    1. git-lfs
    2. meson
  2. Structure
  3. Building


This repository uses submodules. You can clone the repository recursively to automatically setup submodules:

$ git clone --recursive

You can also initialize submodules after cloning:

$ git submodule update --init --recursive


This repository requires git-lfs. If you do not have this installed, please visit

If you cloned this repository before installing git-lfs, please run git lfs pull. Otherwise clone will automatically perform a git lfs pull.


This repository builds with meson, which requires Python 3 and Ninja.

On Ubuntu these can be easily installed with the following command:

$ sudo apt-get install python3 python3-pip ninja-build

For OSX, you can use brew:

$ brew install python3 ninja

The best way to get Meson is through pip:

$ pip3 install meson


  • build/
    • Common build scripts and definitions
  • docs
    • Open-source project templates and reference documentation
  • examples/
    • c/
      • C examples for the Embedded Artistry website
    • cpp/
      • C++ examples for the Embedded Artistry website
    • libc/
      • Example libc implementations
    • libcpp/
      • Example libcpp implementations
  • interview/
    • Example interview question implementations
  • manufacturing/
    • Documents & templates that are useful for the manufacturing side of the embedded world.


You can run make from the top level to build all examples. Output will be placed in a folder called buildresults/ at the top level.

You can also use the proper meson syntax:

$ meson buildresults
$ cd buildresults
$ ninja

Targets can be built individually by using the ninja interface in the buildresults/ directory.

$ cd buildresults
$ ninja interview/bad_c

To clean the builds, run make clean from the project root or ninja clean in the buildresults/ directory.

Binaries will be stored under the buildresults/ folder at the same hierarchical level as in the source tree.For example, the bad_c interview demo application will be in buildresults/interview/.

Further Reading

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
c (13,961
cpp (1,134
cpp11 (236
embedded (233
cpp14 (134
embedded-systems (61
meson (28

Find Open Source By Browsing 7,000 Topics Across 59 Categories