finds.dev← search

// the find

zlgopen/awtk

★ 3,292 · C · LGPL-2.1 · updated Jun 2026

AWTK = Toolkit AnyWhere(a cross-platform embedded GUI)

AWTK is a C GUI framework from ZLG, a Chinese embedded hardware company, targeting everything from bare-metal Cortex M3 to Linux/Windows/mobile/web. It handles the full stack: rendering, widgets, themes, input methods, animations, and an optional MVVM layer. The target user is an embedded firmware team that wants one GUI codebase across constrained MCUs and higher-end Linux devices.

Genuinely targets low-end hardware — no filesystem dependency, RTOS support (RT-Thread, Zephyr, FreeRTOS etc.), and explicit Cortex M3 support with DMA2D/PXP hardware acceleration hooks for STM32/NXP. The dirty rectangle renderer with triple-framebuffer mode is a real optimization, not just a checkbox. IDL-based binding generator produces native-feeling wrappers for a dozen languages (Lua, Go, Python, QuickJS, JerryScript, etc.) rather than raw C-pointer wrappers. Around 20k lines of unit tests plus cppcheck and Facebook Infer static analysis in CI — unusual discipline for an embedded GUI library.

The vendored SDL2 in 3rd/SDL is clearly an old fork (WinPhone 8.1 project files, Ant build files for Android) — you're not getting SDL2 security or performance fixes. Build system is scons, not CMake, which means extra Python toolchain setup and no vcpkg/Conan integration; embedded toolchains rarely expect this. Primary documentation and community are Chinese-first — English docs are translations that visibly lag, and the support channel is a WeChat group. LGPL on a library that recommends static linking on embedded targets creates a legal gray area many commercial product teams will need legal sign-off on before shipping.

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 →