// the find
Azure/iot-edge-v1
Azure IoT Edge
Azure IoT Edge V1 is the original gateway SDK for connecting IoT devices to Azure IoT Hub. It runs a message broker in C with a plugin architecture that lets you write modules in C, Java, Node.js, or .NET. This is the legacy version — V2 (container-based) is the active product.
The multi-language binding support is genuinely well-engineered: the C core exposes a clean module interface and each binding (Java JNI, .NET P/Invoke, Node.js V8 embedding) has its own devdoc with HLD and requirements docs, which is more design documentation than most embedded SDKs bother with. The message broker using a pub-sub pattern with properties-based routing gives you real flexibility without a full MQTT stack. The out-of-process module support (visible in the gateway_oop diagrams) lets you isolate modules that crash. CMake build across Linux and Windows with per-platform adapters is solid for a C project of this complexity.
Dead project — last push October 2020, README explicitly points you to V2. If you're starting a new IoT project, building on this is choosing technical debt from day one. The .NET binding targets the old full framework (csproj style, packages.config), not .NET Core or modern .NET — the dotnetcore binding exists but is a separate, bolted-on path. JSON-based gateway config means your module topology is stringly-typed with no schema validation. No container support at all; V1 assumes you can run native processes on the device, which is increasingly a wrong assumption for modern edge deployments.