Two components: IGL‑Converter (frontend for C and C++‑like subset: AST/NAST, security profile, IR/MMIO) and IGL‑RV‑emb (Draft/Alpha runtime for running WebAssembly modules in a sandbox on ARM Cortex‑M and RISC‑V). Focus - predictable memory, execution constraints, and traceable peripheral access.
Status: v0.1 Draft/Alpha. Language feature support and protection level depend on profile, backend, and target platform.
Key components:
IGL‑Converter - frontend/converter for embedded code (C and C++‑like subset), which builds AST/NAST, performs semantic checks and applies security profile rules, then lowers the program to intermediate representation (IR) and target formats. Goal - predictable behavior, strong diagnostics, and controlled MMIO access within defined policies.
Approach (v0.1):
1. Single pipeline: preprocess → parse/AST → semantic → NAST → security profile → IR/MMIO → targets/runtime.
2. Profiled security: prohibitions and checks (e.g., no exceptions and no dynamic memory; optional runtime checks).
3. Multi-targeting: generation of C and WebAssembly is possible for the supported subset and selected backend.
Execution policies:
1. Execution limitation by steps (GasV1 / fuel), memory/stack/locals limits, traps on violations.
2. Control of allowed effects: allowlist hostcalls and MMIO sandbox (deny‑by‑default).
Module trust verification:
1. IGL‑PKG container: CRC32 integrity.
2. P‑256 ECDSA digital signature (in strict mode - mandatory, signature protects header.flags and package content).
3. (Optional) Module binding to device (HW‑lock, e.g., STM32 UID).
Features:
1. no‑std / no OS, static memory (no heap) - designed for MCU.
2. Flash/RAM requirements depend on BC2‑opcode set and enabled security options (fixed during pilot on target board).
3. Doesn't require hardware replacement - works on existing MCUs.
Frontend and verification pipeline for embedded code
Draft/Alpha WASM‑runtime for microcontrollers
Integration into workflow
Note: IGL v0.1 - Draft/Alpha. Security profiles and sandbox reduce risks, but final security depends on configuration, target MCU, supply chain and adopted threat model.
for implementing and maintaining security practices (project-dependent)
into build/CI/CD as pipeline step (estimate depends on coverage and profile)
requirements depend on WASM features configuration, sandbox and target MCU
depends on enabled checks and limits
Note: values depend on threat model, profile configuration, backend and target platform. For pilot, measurable metrics are usually fixed on your code.
Note: IGL v0.1 - Draft/Alpha. File set and stage coverage depend on selected profile and backend.
Status: v0.1 Draft/Alpha. Supported constructs and WASM features are evolving; backend limitations may affect applicability.
Important: IGL is not universal protection. Effect depends on threat model, profile configuration and platform.
We'll run a pilot: process one module through IGL‑Converter, show diagnostics, profile constraints and lowering artifacts (IR/WASM).
If needed - we'll help calculate ROI based on your inputs (code volume, requirements, platform, check level).