You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Use Zig-native ownership, errors, names, and types instead of copying C
44
+
signatures.
45
+
- Treat the API coverage ledger as the completion contract. Every entry must
46
+
end as implemented or as an explicit Zig standard-library replacement.
47
+
39
48
### Required for the first release
40
49
41
50
- One application managing multiple windows.
@@ -54,16 +63,17 @@ races, and synchronous access to the actual `port = 0` address through
54
63
55
64
- A C API, `src/c.zig`, extern struct ABI, or interface compatibility APIs.
56
65
- Zig 0.14 or 0.15 compatibility. Zig 0.16 is the baseline.
66
+
- Automatic self-signed certificate generation.
57
67
58
-
### Explicit first-release non-goals
68
+
### Deferred capability parity
59
69
60
70
- WebView2, GTK/WebKit, or WKWebView.
61
71
- Deno, Node, or Bun server-side runtimes.
62
72
- Automatic reload, proxies, or browser profile management.
63
-
- Automatic self-signed certificate generation.
64
-
- Complete compatibility with every upstream browser and command-line flag.
73
+
- Browser selection, managed processes, and window-control flags.
65
74
66
-
Add these only after the core release and only when real use requires them.
75
+
These do not block the external-browser core, but they are required before
76
+
declaring complete upstream capability parity.
67
77
68
78
## Do Not Translate `webui.c` Line by Line
69
79
@@ -274,9 +284,9 @@ protocol input never panics.
274
284
275
285
## Upstream WebUI API Coverage Ledger
276
286
277
-
This ledger tracks upstream WebUI `2.5.0-beta.4`capabilities independently
278
-
of the implementation phases. Upstream C names are identifiers for
279
-
traceability, not a commitment to reproduce the C API shape in Zig.
287
+
This ledger tracks upstream WebUI `2.5.0-beta.4`at commit
288
+
`337a183cea0a9c5daee16acb77eed2d5443bbbb0`. Upstream C names are identifiers
289
+
for traceability, not a commitment to reproduce the C API shape in Zig.
280
290
Coverage is determined only from `src/root.zig` and its reachable pure Zig
281
291
modules. Deleted legacy wrapper, test, and example files do not count as
282
292
implementations.
@@ -309,8 +319,6 @@ implementations.
309
319
|`webui_set_profile()`, `webui_delete_profile()`, `webui_delete_all_profiles()`| Managed browser profiles are not implemented. |
310
320
|`webui_set_proxy()`| Browser proxy configuration is not implemented. |
311
321
|`webui_get_parent_process_id()`, `webui_get_child_process_id()`| Browser process tracking is not implemented. |
312
-
|`webui_set_public()`| A guarded public-listening option with Origin validation and explicit limits is not implemented. |
313
-
|`webui_set_tls_certificate()`| Caller-provided TLS certificate and private-key configuration is not implemented. |
314
322
|`webui_set_runtime()`| Deno, Node.js, and Bun execution for served files is not implemented. |
315
323
|`webui_show_wv()`, `webui_set_close_handler_wv()`, `webui_get_hwnd()`, `webui_win32_get_hwnd()`| Native WebView hosting and native window handles are outside the pure Zig browser core. |
316
324
@@ -350,13 +358,114 @@ not implementation gaps:
350
358
|`webui_close_client()`, `webui_navigate_client()`, `webui_send_raw_client()`|`Client.close()`, `Client.navigate()`, and `Client.sendRaw()`. |
351
359
|`webui_navigate()`, `webui_send_raw()`|`Window.navigate()` and `Window.sendRaw()`. |
|`webui_set_public()`|`App.Options.public` permits non-loopback listening only with TLS; Origin and explicit connection and protocol limits are enforced. |
362
+
|`webui_set_tls_certificate()`|`App.Options.tls` accepts caller-provided PEM certificate and private-key bytes. |
353
363
|`webui_set_port()`, `webui_get_port()`, `webui_get_free_port()`|`App.Options.port`, including `0` for automatic selection, and the running window URL. |
354
364
|`webui_set_root_folder()`, `webui_set_file_handler()`, `webui_set_file_handler_window()`, `webui_return_http()`| Initial `.directory` or `.custom` content and `Response`. Runtime replacement remains listed above. |
355
365
|`webui_get_mime_type()`| Linsang resource handling. |
356
366
|`webui_encode()`, `webui_decode()`, `webui_malloc()`, `webui_free()`, `webui_memcpy()`| Zig standard library and allocators. |
0 commit comments