godofecht / godofecht/danzig

Native UI integration path: pugl + skia as an alternative to webview

Open
#12 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
HTML
Stars
3
Forks
0
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the proposed pugl window and event layer, skia drawing path through skiasharp's bundled C API, and the zigplug prior art. Define what a generic integration seam must support and how desktop and future mobile paths fit it; done means a concrete, agreed integration design rather than an exploratory option list.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, zig
Domain
desktop, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.