A minimal Rust toolkit for building client-side web applications with no JavaScript, no dependencies, and less than 800 lines of code.
TinyWeb is a toolkit for building client-side web applications entirely in Rust, compiled to WebAssembly. It solves the complexity and correctness concerns of JavaScript/TypeScript frameworks by leveraging Rust's type system while maintaining a minimal codebase with no external dependencies.
Rust developers who want to build web applications without JavaScript, and those prioritizing simplicity, correctness, and minimal dependencies over feature-rich frameworks.
Developers choose TinyWeb for its extreme minimalism (under 800 lines of code), lack of dependencies, and the ability to write full-stack Rust applications with a consistent language and tooling.
Rust on the client. Less than 800 lines of code. No dependencies.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
With zero external crates and under 800 lines, TinyWeb is highly auditable and avoids dependency bloat, as emphasized in the README.
Only requires standard cargo build for Wasm compilation, eliminating complex toolchains and configuration, which simplifies setup.
Enables client-side logic entirely in Rust, leveraging its type system for correctness without JavaScript, as shown in the examples.
Outputs static HTML, JavaScript glue, and Wasm files that can be served by any HTTP server, making deployment straightforward.
Js::invoke methods are not type-safe, increasing runtime error risks, as admitted in the roadmap's static analysis section.
Lacks built-in UI components; developers must implement common elements from scratch, slowing development for standard features.
Requires manual steps like copying wasm files to the public directory, which can be error-prone compared to integrated build systems.