Skip to main content

Hello World — build and run in minutes

The edgeembed-sdk is the open-source (Apache-2.0) SDK for building on the EdgeEmbed runtime: the public C API headers, a ROS 2 bridge node, and a hello-world example. It follows an open-core model — the SDK is open so you can build, test, and contribute freely; the deterministic engine itself (libedgeembed.so) is a separate, closed, commercially-licensed component, available as an evaluation build for non-production trials.

This page runs the SDK's hello-world example on an ordinary x86-64 Linux PC: clone the SDK, fetch the evaluation runtime, build the example, and fire one event through the deterministic engine. No target hardware, no NDA.

Repository: github.com/EdgeEmbedAI/edgeembed-sdk

Prerequisites

  • A Linux x86-64 machine (tested on Ubuntu 22.04).
  • build-essential and cmake ≥ 3.20.
  • curl (used to fetch the evaluation runtime) and the cJSON runtime library libcjson1.
sudo apt install -y build-essential cmake curl libcjson1

Step 1 — Clone the SDK

git clone https://github.com/EdgeEmbedAI/edgeembed-sdk.git
cd edgeembed-sdk

The repository contains the public headers (include/), the ROS 2 bridge (ros/edgeembed_ros/), and the example (examples/hello_runtime/). The runtime engine is not in the repo — you fetch it next.

Step 2 — Fetch the evaluation runtime

./tools/fetch-runtime.sh

This downloads the public Linux x86-64 evaluation build — libedgeembed.so plus a sample bundle — from the latest release into runtime/. The runtime's behavior is architecture-independent, so evaluating on a laptop is a faithful trial. The runtime is evaluation-licensed (see LICENSE-RUNTIME); production use needs a commercial license — contact@edgeembed.com.

Step 3 — Build and run the example

cmake -S examples/hello_runtime -B build && cmake --build build
./build/hello_runtime

You should see:

EdgeEmbed 2.0.1 — event id=1, submitted=1, completed=0
hello EdgeEmbed: OK

That's the whole loop working end to end: hello_runtime initialises the runtime, loads runtime/sample_bundle, submits one event (evt_alpha), drives the decision loop a few steps, and reads back the diagnostics — one event submitted, processed by the deterministic engine, with the runtime version reported. The example source (examples/hello_runtime/hello_runtime.c) is Apache-2.0; the engine it links is the evaluation runtime.

Step 4 — Point it at your own bundle

The example takes an optional bundle-directory argument, so you can run any bundle you build against the same headers:

./build/hello_runtime path/to/your_bundle

Behavior is declared in the config bundle (events, policy, action mapping), not in the engine code — see Bundle architecture for the shape of a bundle.


What's next: wire the runtime into your application through the C API — see the SDK integration and HAL integration guides. To feed ROS 2 topics into the runtime as events, use the ROS 2 bridge node under ros/edgeembed_ros/ in the SDK.