LVGL (Light and Versatile Graphics Library) is a free, open source GUI framework for systems with limited resources. It allows you to create stylish embedded GUIs with a very small memory footprint using easy-to-use building blocks. While it’s mainly known as a C library, it also has bindings for other low-footprint languages such as MicroPython.

LVGL’s functionality is spread across several repositories. The two primary repositories are:

  • lvgl: the main library, which also contains demos and examples. This is essentially the presentation layer of the library, as the UI code is platform-independent and highly portable.

  • lv_drivers: display and input device drivers. LVGL supports multiple environments, so it’s up to the developer to choose which configuration works best for their use case. LVGL offers several rendering backends for embedded OS, including direct-to-framebuffer, DRM, SDL2, and Wayland.

There are also 3rd party libraries available to extend LVGL’s functionality.