Crate lvgl

source ·
Expand description


LVGL bindings for Rust. A powerful and easy-to-use embedded GUI with many widgets, advanced visual effects, and low memory footprint. This crate is compatible with #![no_std] environments by default.


  • Logic for interoperability with the lv_drivers project.
  • LVGL font handling logic and helper structures.
  • Input driver logic and handling
  • Native LVGL objects
  • Styling for LVGL objects and widgets
  • Widget-specific features



  • Represents a sub-area of the display that is being updated.
  • An LVGL color. Equivalent to lv_color_t.
  • An LVGL-registered display. Equivalent to an lv_disp_t.
  • An update to the display information, contains the area that is being updated and the color of the pixels that need to be updated. The colors are represented in a contiguous array.
  • A buffer of size N representing N pixels. N can be smaller than the entire number of pixels on the screen, in which case the screen will be drawn to multiple times per frame.
  • Generic LVGL object.


  • Possible LVGL alignments for widgets.
  • Boolean for determining whether animations are enabled.
  • Internal LVGL error.
  • Error in interacting with a Display.
  • Events are triggered in LVGL when something happens which might be interesting to the user, e.g. if an object:
  • Generic LVGL error. All other errors can be coerced into it.
  • Events sent only by pointer-like input devices (e.g. mouse or touchpad)


  • Represents a native LVGL object.
  • A wrapper for all LVGL common operations on generic objects.


  • Directly send an event to a specific widget.
  • Calls the LVGL timer handler. This function should be called periodically.
  • Runs an LVGL tick lasting a given core::time::Duration. This function should be called periodically.

Type Definitions