About this project

Leptos is a full-stack, isomorphic Rust web framework for building declarative user interfaces. It leverages fine-grained reactivity, meaning components run once to create actual DOM nodes and set up a reactive system that updates individual nodes directly, without virtual DOM overhead. Key capabilities include: - Full-stack rendering: client-side rendering, server-side rendering (SSR), and SSR with hydration. - HTTP streaming of both data (Resources) and HTML (out-of-order or in-order streaming of Suspense components). - Isomorphic server functions: write server-only logic (database requests, authentication) alongside client components and call them with the same shape without maintaining a separate REST API. - A router built on web fundamentals (links and forms) that works on both server and client. - Two templating syntaxes: a JSX-like view! macro and a builder syntax. - Copy + 'static reactive signals for ergonomic state management. The framework provides starter templates for Actix and Axum, and integrates with the cargo-leptos build tool. It can also be used with Trunk or a simple wasm-bindgen setup. The reactive system can additionally drive native GUI toolkits using event listeners and effects. Compared to Yew and Dioxus, Leptos uses fine-grained reactivity rather than a virtual DOM. Compared to Sycamore, Leptos uses a JSX-like template format and includes server functions in the core framework rather than relying on a separate metaframework. The project states its APIs are basically settled with no expected major architectural breaking changes, and notes community members are using it for production websites.