🏭 EmbeddedOS Stacks
Opinionated, version-pinned bundles of canonical EmbeddedOS product repos — one git clone, one cmake invocation, one smoke test. Powered by the eFab manifest meta-repo.
What is a stack?
A recipe, not a fork.
EmbeddedOS publishes 13 small, independently-versioned product repositories. That is a deliberate design choice — eIPC alone is a useful secure-IPC layer, eAI alone is a useful on-device inference framework, and so on.
A Stack is a named, version-pinned bundle of those products built for one specific use case (intelligent edge node, production AI MCU, BCI prototype, …). Stacks are defined as YAML manifests inside the eFab meta-repo and consumed via a CMake superproject that fetches each pinned product at configure time.
Stacks ship no product code. A stack is a recipe. Bugs in the products themselves still belong upstream (file in eAI / eIPC / eNI directly).
Available stacks
v0.1.0 ships one profile. More land in v0.2 – v1.0 — see the roadmap.
eai-edge v0.1.0
Intelligent edge node with neural-interface input. Pipeline: ENI ➜ EIPC ➜ eAI. Pulls eNI v0.1.0 + eIPC v0.1.0 + eAI v0.1.0. Smoke tested on host-x86_64-linux, host-x86_64-darwin, host-aarch64-linux; build-only on target-stm32f4.
embedded-core v0.2 planned
Minimum boot-and-run for any embedded target. Bundles eos + eBoot + ebuild. Universally needed by every product, but not yet a graduated stack — tracked in the eFab roadmap.
smart-edge v0.3 planned
Production AI on MCU / Cortex-A without BCI. embedded-core + eAI + eIPC. The non-neural sibling of eai-edge. Tracked in the eFab roadmap.
Quick start
# Clone the manifest repo (no product source vendored — just recipes)
git clone https://github.com/embeddedos-org/eFab.git
cd eFab/superproject/eai-edge
# Configure — FetchContent will pull eNI, eIPC, eAI at the pinned tags
cmake -B build -DCMAKE_BUILD_TYPE=Release
# Build all three repos as one tree
cmake --build build -j
# Run the end-to-end smoke test (ENI -> EIPC -> eAI)
python3 ../../tests/eai-edge/smoke_test.py
FAQ
Does eFab change the canonical 13 / 14?
No. eFab is a meta-repo (like embeddedos-org and embeddedos-org.github.io), explicitly excluded from the canon count. Canonical roster stays at 13 product repos / 14 reference books.
Where do I file bugs?
Bugs in inference / transport / sensor behaviour: file in eAI, eIPC, or eNI. Wrong version pin, missing smoke test, or new profile request: file in eFab.
Why not just merge the three repos?
Because eIPC standalone is useful for non-AI projects (any secure inter-process layer), eAI standalone runs without BCI hardware, and eNI standalone is meaningful for raw signal capture. Merging would force every consumer to ship all three. The manifest preserves independent evolution.
Can I propose a new stack?
Yes — open a PR against eFab adding a manifest, a CMake superproject, a smoke test, and a docs page. The intake checklist is in docs/architecture.md.