This release is a pre-release and may not be stable for production use.
ubo-lvgl-gui-client
Python launcher and gRPC bridge for the LVGL (C) GUI renderer. It connects to the
ubo-core gRPC server, translates ViewData/StatusBarData into calls on the C
renderer (libubo_lvgl) via CFFI, forwards keypad input, and answers screenshot
requests.
Run (from the repo root):
uv run ubo-core # serves 127.0.0.1:50051
uv run --directory ubo_app/lvgl_gui python -m ubo_lvgl_gui_client --backend sdl
Modules: bridge.py (CFFI ↔ C structs), client.py (gRPC subscribe/reconnect),
view_translator.py (betterproto → bridge), keyboard.py, screenshot.py,
__main__.py.
Transports
The client can reach ubo-core over two wire transports, selected at launch:
grpc(default) — native gRPC over HTTP/2 (UboRPCClient, grpclib), connecting directly to the core's gRPC port (--host/--port).web-grpc— gRPC-Web over HTTP/1.1 through an Envoy proxy (the same/grpcendpoint the web-UI uses, default Envoy port50052). Intended for resource-constrained targets where an HTTP/2 gRPC stack is impractical.
Select via flags or environment variables:
# native gRPC (default)
python -m ubo_lvgl_gui_client --transport grpc --host ubo-r.local --port 50051
# gRPC-Web via Envoy
UBO_LVGL_GUI_TRANSPORT=web-grpc \
UBO_LVGL_GUI_WEB_GRPC_URL=http://ubo-r.local:50052/grpc \
python -m ubo_lvgl_gui_client
Only the wire layer differs — request/response bodies are the identical protobuf
messages, so the betterproto bindings are reused for both. grpc_web_frame.py
holds the dependency-free framing codec and is the portability boundary for
the eventual ESP32 (C) port: that module maps 1:1 to a C buffer-and-drain loop
(swap betterproto for nanopb and httpx for esp_http_client).
See ubo_lvgl/README.md at the repo root for the full architecture, build,
and run guide (the C renderer is the main component).
Metadata
Release files for ubo-lvgl-gui-client 2.0.1.dev260819103102541025
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ubo_lvgl_gui_client-2.0.1.dev260819103102541025.tar.gz | 19.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ubo_lvgl_gui_client-2.0.1.dev260819103102541025-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.3 kB
Release files / ubo_lvgl_gui_client-2.0.1.dev260819103102541025.tar.gz
| Download URL | ubo_lvgl_gui_client-2.0.1.dev260819103102541025.tar.gz |
|---|---|
| Size | 19.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0795e4fae03e4e55174769007911f7b6d2108f000126186e68f6b3ecb01f4ed
|
|
BLAKE2b-256 checksum How to use checksums |
63e1df4b06847c3a9b4c363bc99deddc09e5c0fc634a2503a9091bc71619f85d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.
Transparency logRelease files / ubo_lvgl_gui_client-2.0.1.dev260819103102541025-py3-none-any.whl
| Download URL | ubo_lvgl_gui_client-2.0.1.dev260819103102541025-py3-none-any.whl |
|---|---|
| Size | 23.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
336ca8a1a5b285bdb88fa1b0232f3edbf64f3779f1556ffb797f4387eca9c5fc
|
|
BLAKE2b-256 checksum How to use checksums |
ab37114b79ea215fe04ec04f3350a4e3dfddf855d11f3bbaeb1049c8eaca30e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.
Transparency log