UltimateUI
UltimateUI is a high-performance C# GUI framework for WebKit. Application code uses a strongly typed C# DOM API. The framework lowers element trees, attributes, styles, and event listeners into binary opcode frames, then a preloaded TypeScript shim applies DOM mount/update work inside the WebKit renderer.
The current v1 target is Linux x86_64:
- Render host: WebKitGTK 6.0
- JavaScript engine: JavaScriptCoreGTK 6.0
- Runtime path: C# typed DOM -> binary wire frame -> WebKitGTK -> shim decoder -> DOM
- Event path: DOM event ->
window.webkit.messageHandlers.uui-> C# listener registry
Minimal Example
var builder = UltimateAppBuilder.CreateDefaultBuilder();
var app = builder.Build();
var window = app.MainWindow = new Window();
window.Render(ctx =>
{
var count = ctx.UseState(0);
var root = new Div { Class = "container" };
var button = new Button($"Clicked {count.Value}");
button.OnClick += (_, _) => count.Update(static value => value + 1);
root.Children.Add(new H1("UltimateUI"));
root.Children.Add(button);
return root;
});
return await app.RunAsync();
Current Boundaries
- WebKitGTK is the current real renderer;
NullRenderHostis used for tests, golden frames, and non-UI environments. - macOS
WKWebViewand WindowsWebView2are reserved interface seats and are not implemented yet. - Native WebProcessExtension is a reserved fast path. The default path uses
webkit_web_view_evaluate_javascript. - User code does not write JavaScript directly. JavaScript exists only as the framework-owned shim.