finds.dev← search

// the find

zlgopen/awtk-mvvm

★ 96 · C · LGPL-2.1 · updated May 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →