// the find
zlgopen/awtk-mvvm
Model-View-ViewModel for AWTK
AWTK-MVVM brings data binding and command binding to AWTK, a C GUI toolkit aimed at embedded systems. It lets you write ViewModels in plain C structs, wire them to UI widgets declaratively, and keep your business logic completely decoupled from the GUI layer. The target audience is embedded firmware developers who need a structured UI architecture without a heavy runtime.
The code-generation approach (idl.json → generated ViewModel boilerplate) eliminates the most tedious part of MVVM in C — writing the property getter/setter dispatch tables by hand. JerryScript integration means you can prototype or script logic in JS and drop to C only where you need the performance. The 40+ demos with parallel C/JS/C++ versions make it genuinely easy to understand what each feature does before writing any code. The STM32 port documentation shows this isn't just a desktop toy — someone actually ran it on real hardware.
JerryScript is pinned to a specific SHA (3737a28) with a warning that newer commits break compatibility — that's a dependency you can't upgrade without risking breakage, which is a real problem on a long-lived embedded project. Documentation is almost entirely in Chinese, which shuts out a large portion of potential users unless they're willing to run everything through a translator. The C++ demos have gaps (demo14–19, 21–38 are C-only) so if you want C++ throughout you'll hit walls quickly. No package manager support — you must clone both awtk and awtk-mvvm side-by-side in the exact same parent directory, which makes integration into an existing project build system awkward.