You are currently viewing the docs for Dioxus 0.6.0 which is under construction.

Project Structure

There are many packages in the Dioxus organization. This document will help you understand the purpose of each package and how they fit together.

Renderers

  • Desktop: A Render that Runs Dioxus applications natively, but renders them with the system webview
  • Mobile: A Render that Runs Dioxus applications natively, but renders them with the system webview. This is currently a copy of the desktop render
  • Web: Renders Dioxus applications in the browser by compiling to WASM and manipulating the DOM
  • Liveview: A Render that Runs on the server, and renders using a websocket proxy in the browser
  • Plasmo: A Renderer that renders a HTML-like tree into a terminal
  • TUI: A Renderer that uses Plasmo to render a Dioxus application in a terminal
  • Blitz-Core: An experimental native renderer that renders a HTML-like tree using WGPU.
  • Blitz: An experimental native renderer that uses Blitz-Core to render a Dioxus application using WGPU.
  • SSR: A Render that Runs Dioxus applications on the server, and renders them to HTML

State Management/Hooks

  • Hooks: A collection of common hooks for Dioxus applications
  • Signals: A experimental state management library for Dioxus applications. This currently contains a Copy version of Signal
  • SDK: A collection of platform agnostic hooks to interact with system interfaces (The clipboard, camera, etc.).
  • Fermi: A global state management library for Dioxus applications.
  • Router: A client-side router for Dioxus applications

Core utilities

  • core: The core virtual dom implementation every Dioxus application uses
  • RSX: The core parsing for RSX used for hot reloading, autoformatting, and the macro
  • core-macro: The rsx! macro used to write Dioxus applications. (This is a wrapper over the RSX crate)
  • HTML macro: A html-like alternative to the RSX macro

Native Renderer Utilities

  • Taffy: Layout engine powering Blitz-Core, Plasmo, and Bevy UI
  • Blitz: An experimental native renderer for HTML+CSS

Web renderer tooling

  • HTML: defines html specific elements, events, and attributes
  • Interpreter: defines browser bindings used by the web and desktop renderers

Developer tooling

  • hot-reload: Macro that uses the RSX crate to hot reload static parts of any rsx! macro. This macro works with any non-web renderer with an integration
  • autofmt: Formats RSX code
  • rsx-rosetta: Handles conversion between HTML and RSX
  • CLI: A Command Line Interface and VSCode extension to assist with Dioxus usage