finds.dev← search

// the find

leptos-rs/leptos

★ 20,874 · Rust · MIT · updated Jun 2026

Build fast web applications with Rust.

Leptos is a full-stack Rust web framework built around fine-grained reactivity — components run once and set up a reactive graph to update the DOM directly, no virtual DOM diffing. It covers CSR, SSR, and SSR-with-hydration including out-of-order streaming, with server functions that let you call server-only code from components without maintaining a separate API. The target audience is Rust developers who want to stay in Rust end-to-end and are willing to trade ecosystem maturity for raw performance.

Fine-grained reactivity is the real deal: a signal change updates a single text node or attribute without re-running any component function, which beats both Yew and Dioxus on update performance. Server functions are a genuinely good abstraction — you write a function annotated with `#[server]`, and the framework generates the HTTP endpoint and the client-side fetch call; no hand-rolled REST layer needed. Out-of-order `<Suspense>` streaming works in SSR mode, meaning the browser starts rendering before the server finishes, which is table stakes for modern web perf that most Rust frameworks still don't have. The `Copy + 'static` signal design is a meaningful ergonomics win over lifetime-bound alternatives — you can move signals into closures without fighting the borrow checker.

WASM binary sizes are a real tax: a non-trivial Leptos app will ship hundreds of KB of WASM after optimization, and the docs have a dedicated binary-size reduction guide for good reason. Compile times are painful — you're compiling Rust proc macros, WASM, and the native server binary in the same project; `cargo leptos watch` rebuild cycles on a real app will try your patience. Hydration mismatches are a named category of bugs with their own documentation page, meaning the SSR/hydration boundary is genuinely fragile and you'll hit it. The generic cross-platform rendering story was attempted and shelved because the Rust compiler couldn't handle the generics at scale — desktop/native UI via Leptos is currently a dead end, which matters if you ever wanted to reuse component logic outside the browser.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →