Web Frameworks and Full-Stack Wasm UIs
Fine-grained reactivity, SSR + hydration, server functions Component-based, React-like
React-like, cross-platform (web, desktop, mobile) Reactive, no virtual DOM egui / eframe Immediate-mode GUI on a canvas Blazor WebAssembly
Full.NET in the browser, Razor components Uno Platform / Avalonia Cross-platform XAML apps on Wasm Compose Multiplatform (Kotlin/Wasm) Jetpack Compose UI on the web Flutter Web (Wasm) Skia/CanvasKit rendering with WasmGC Python in HTML via Pyodide/MicroPython Vugu, go-app Go web UI frameworks
Trade-offs: initial download size (runtime and framework), DOM access via JS glue (getting faster with reference types and builtins), SEO (use SSR), but you get a single language for the full stack, strong typing, and compute performance.
// Leptos counter
use leptos::prelude::*;
#[component]
fn Counter() -> impl IntoView {
let (count, set_count) = signal(0);
view! {
<button on:click=move |_| set_count.update(|n| *n += 1)>
"Clicked " {count} " times"
</button>
}
}
fn main() { leptos::mount::mount_to_body(Counter) }cargo install trunk && trunk serve # build + dev server for Rust Wasm apps