Build system []

We use a build system with make and git submodules. The long term plan is to move to a dedicated package and build manager once one becomes available.


  • Reproducible build environment
  • Fewer disruptions due to mismatching versions of compiler and dependencies


  • Increased build system complexity with tools that may not be familiar to nim developers
  • Build system dependencies hard to use on Windows and constrained environments


We do not use nimble, due to the lack of build reproducibility and other team-oriented features. We sometimes provide .nimble packages but these may be out of date and/or incomplete.