lvgl-bindings ยท moved

lvgl-bindings has moved into omnipython-lvgl.

lvgl-bindings Moved to omnipython-lvgl as binding/, the generator that parses LVGL's C headers into the MicroPython, CircuitPython and CPython modules, with its history. Your code doesn't change. The old repository is archived.

omnipython-lvgl How the generator works Docs Archived repo

Single Pipeline, Three Target Interpreters

Automated C header parser ensuring 100% API parity.
Generator Pipeline Architecture โ€” single source of truth

๐Ÿ“ฅ Input Source

LVGL C Headers (lvgl.h, lv_conf.h)
            โ”‚
            โ–ผ
[ binding/gen_binding.py --target {mp,cp,cpython} ]

๐Ÿ“ค Output Binding Trees

โ”œโ”€โ”€ generated/lvgl_micropython.c
โ”œโ”€โ”€ generated/lvgl_circuitpython.{c,h}
โ””โ”€โ”€ generated/lvgl_python.c (CPython/Pyodide)

Named in the spirit of gen_mpy.py from LVGL's original lv_binding_micropython generator โ€” gen_binding.py is a ground-up, multi-target rewrite, not a fork, so it doesn't share that file's name.

Downstream Binding Consumers

lvgl-micropython

Consumes generated/lvgl_micropython.c for MicroPython MCU firmware builds.

lvgl-circuitpython

Consumes generated/lvgl_circuitpython.{c,h} for CircuitPython out-of-tree native extensions.

lvgl-python

Consumes generated/lvgl_python.c for CPython binary wheels and Pyodide WebAssembly packages.