Context
The UI story starts with webview. The open question is which native library to
integrate for people who want to render their own UI rather than ship HTML. The
goal is to let people bring their own UI library with an easy integration path.
This is a request from a community thread, tracked here so it is on record. It
is exploratory and not committed work.
Suggestion from the thread (ishineee)
Pair a windowing and event layer with a drawing library:
- pugl for the window and event loop. Supports macOS, Linux X11, and
Windows. No iOS or Android today. pugl support for iOS looks addable if we go
this route.
- skia for drawing. Backends for OpenGL, Metal, and Vulkan. The same drawing
library used in Chromium, ChromeOS, and Android. Reachable from a native C API
through skiasharp, which bundles it. The tradeoff is skia's build system, which
is complicated to build yourself.
Prior art
Notes
- pugl covers desktop. Mobile would need extra work (the iOS pugl port above).
- skiasharp's bundled C API is the path to skia without wrestling its full build.
- Keep the integration seam generic so a different UI library can slot in.
Context
The UI story starts with webview. The open question is which native library to
integrate for people who want to render their own UI rather than ship HTML. The
goal is to let people bring their own UI library with an easy integration path.
This is a request from a community thread, tracked here so it is on record. It
is exploratory and not committed work.
Suggestion from the thread (ishineee)
Pair a windowing and event layer with a drawing library:
Windows. No iOS or Android today. pugl support for iOS looks addable if we go
this route.
library used in Chromium, ChromeOS, and Android. Reachable from a native C API
through skiasharp, which bundles it. The tradeoff is skia's build system, which
is complicated to build yourself.
Prior art
pugl: https://codeberg.org/bandithedoge/zigplug
Notes