Fusor

Fusor

Build reactive browser interfaces with plain HTML templates and Rust logic

Open Source

Gallery

About Fusor

Fusor is an open source reactive web framework that keeps interface markup in ordinary HTML files while state and frontend logic live in Rust. It compiles the Rust side to WebAssembly for the browser and connects Rust expressions to text, attributes, conditions, lists, and events in the templates. That split addresses a specific frustration in Rust frontend development. Developers can use familiar HTML instead of embedding the view inside a Rust macro, while still getting typed state, methods, imports, and compiler checks for the expressions that cross the boundary.

A reusable component normally has two parts. The HTML file declares the component, its native markup, and any bindings or event handlers. A Rust struct owns local signals and methods, then a template macro associates that module with the corresponding file. Fields and methods exposed as state become available to the template, so an event can call a Rust method and a text binding can read a signal. Fusor's build tooling extracts and compiles those connections with Cargo and rustc. Rust bodies in supported HTML script blocks remain ordinary Rust, and generated bindings share typed contracts with the browser runtime. Template errors are mapped back to their authored HTML lines, which makes the compilation model more useful than treating the template as an unchecked string. Rust analyzer still provides completion, hover information, and definition navigation in the Rust modules.

Reactivity is fine grained and doesn't use a virtual DOM. Each binding tracks the signals it reads, then updates its own DOM target when those signals change. Ownership manages cleanup when a component is removed, including its listeners, subscriptions, and children. The default output is a client side WebAssembly application. Optional first party packages add routing, asynchronous resources, shared queries, native JavaScript integrations, and server rendered islands, while the core remains focused on rendering and reactive state. Those capabilities stay modular, so a project can take the pieces it needs rather than adopting every convention at once. Fusor doesn't include a backend or server function layer, so applications bring their own HTTP service and data design.

The project includes a command line workflow for creating, checking, running, and building applications. After installing the released CLI, a developer can create a starter with the new command, run a development server that rebuilds when HTML or Rust changes, check compiler errors, and produce a static distribution folder. Installation scripts are published for macOS, Linux, and Windows, and the current release requires Rust 1.85 or newer. The installer verifies its downloaded CLI checksum, and the Unix script leaves shell configuration unchanged while explaining which path entry to add. The documentation and repository include runnable examples for counters, search, lists, asynchronous views, typed navigation, shared state, explicit form saves, and integrations with CodeMirror and Chart.js. Developers can also write Rust directly inside an HTML page for playground style experiments, although the separate module pattern is the clearest expression of the framework's design.

Fusor suits Rust developers who want browser interfaces without adopting a Rust specific markup language. It will appeal most to people who value Cargo, rustc, explicit ownership, and WebAssembly, but still want designers or frontend specialists to recognize the basic shape of a component file. Compared with frameworks whose components return macro based views, Fusor keeps the authoring boundary visible. Compared with virtual DOM frameworks, it updates only the bindings that observed a changed signal. That model is interesting for typed dashboards, browser tools, internal applications, and experiments where Rust owns the behavior and plain HTML remains the view layer.

The tradeoff is maturity. Fusor is currently at version 0.1 and the maintainers explicitly describe it as experimental, warn that minor versions before 1.0 can introduce breaking syntax and API changes, and advise against relying on it for production yet. It targets browsers only, lacks editor completion inside HTML templates, and has several unsupported parsing and asynchronous rendering cases. Current gaps include some SVG, MathML, selection control, table, nested island, and streamed rendering scenarios. The documented starter bundle is also larger than the compared Leptos and Solid examples. Still, the CLI and crates are released, the examples are runnable, and the source is available under the MIT license. It is a practical project to evaluate today, as long as adopters treat it as early technology and budget for change.

Key Features

  • Plain HTML component templates
  • Rust state and event logic
  • Fine grained signal reactivity
  • WebAssembly browser compilation
  • Compiler checked template bindings
  • CLI development and static builds

Pros & Cons

What we like

  • Keeps markup outside Rust macros
  • Uses rustc to check template expressions
  • Updates DOM targets without virtual DOM
  • MIT licensed with open source code

Room for improvement

  • Experimental pre 1.0 APIs
  • Browser only rendering target
  • Larger starter bundle than named alternatives
  • No built in backend or server functions

Frequently Asked Questions

What is Fusor?
Fusor is a reactive web framework that uses plain HTML files for interface markup and ordinary Rust modules for state and logic. It compiles Rust to WebAssembly and connects typed expressions to browser DOM bindings.
Is Fusor free?
Yes. Fusor is open source and released under the MIT license. Its framework crates, command line tooling, examples, tests, and documentation source are publicly available.
Does Fusor use a virtual DOM?
No. Bindings track the signals they read and update their own DOM targets when those values change. Component ownership also handles cleanup for listeners, subscriptions, and children when a view is removed.
Is Fusor ready for production use?
Not yet according to its maintainers. Version 0.1 is explicitly experimental, pre 1.0 minor releases may break APIs or HTML syntax, and several browser and rendering cases remain unsupported.

Best For

Building reactive browser apps in RustPrototyping typed WebAssembly interfacesCreating reusable HTML backed componentsExploring fine grained DOM reactivity

Featured in

Alternatives to Fusor

Reviews (0)

No reviews yet

Be the first to share your experience with Fusor

Sign in to write a review

Badge builder

Add Fusor to your website

Choose a badge style and size, preview it here, then copy the generated HTML. Badge images are self-contained SVGs and do not require an external script.

Fusor badge preview
<a href="https://toolindex.net/tools/fusor?ref=badge" target="_blank" rel="noopener">
  <img src="https://toolindex.net/badge/fusor/medium.svg" alt="Fusor - Listed on Tool Index" width="180" height="50" />
</a>

How to use the badge

  1. 1. Pick the style, size, and theme that fit your layout.
  2. 2. Copy the generated HTML from the code block.
  3. 3. Paste it into your footer, homepage, or press page.

Standard badge available

The standard listing badge is available now. Score and circle badges are limited to tools currently ranked in the top 10 of a category.

Badge clicks return visitors to this profile with a referral tag so the source remains identifiable.