Series Outline Link to heading

  1. Overview
  2. Framework analysis and selection: Delving into the specifics of framework selection and application.
    1. Core Components: Database management, modularization, internal RPC, AMQP.
    2. Web and API: Web Server, GraphQL API.
    3. Application Development: Web, CLI, desktop, and mobile app development.
    4. Miscellaneous Tools: Observability, logging, machine learning.
  3. Boilerplate project: A comprehensive guide including setup instructions for selected frameworks, architectural diagrams, and development environment configurations.

Web Link to heading

CrateDownloadsDependentsGithub StarsGithub ContributorsGithub Used ByNotes
dioxus100k6614.5k1691.2kA virtual DOM for rust. Part of opencollective, has a large and growing community, and used by numerous startups, etc.
tauri1.1M6970k302518Very robust, but only desktop (and soon to be mobile)
yew800k18628.8k40210.3kAlso open collective!. This is great, but web only.
egui1.4M24017.1k32010.2kVery opinionated, web+native. pre-built GUI components, could build an entire OS out of it. Ugly, and not very web-friendly though… for an admin tool though, this would be awesome (which is really what it’s made for)

Other Resources:

CLI Link to heading

CrateDownloadsDependentsGithub StarsGithub ContributorsGithub Used ByNotes
dioxus100k6614.5k1691.2kA virtual DOM for rust. Part of opencollective, has a large and growing community, and used by numerous startups, etc.
clap166M1323012.2k474344kPart of opencollective! Very highly used, respected, and supported. Learning curve is a bit steep IMHO though.
cliparser300k16??Simpler tool, nowhere near as well supported.

Mobile Link to heading

CrateDownloadsDependentsGithub StarsGithub ContributorsGithub Used ByNotes
dioxus100k6614.5k1691.2kA virtual DOM for rust. Part of opencollective, has a large and growing community, and used by numerous startups, etc.
cargo-flutter8k0132?Simple, but not well supported, only updated 4 years ago.
rinf68308118?Newer framework, looks very promising. Well tested. A bit of a risk though, since it’s so new.
flutter_rust_bridge721k23k79791Looks to be the main framework. Well tested, lots of great docs & tutorials. Well into it’s release cycle. The safe option.

Summary Link to heading

Well, dioxus seems like the only real contender - and, as an extra bonus, supports deployment to all our app platforms (and more). Why consider anything else? Main thing to consider is that it’s not got any kind of UI library - so, we’d still need to pick a CSS/HTML framework. Even more bonuses: NixOS install script! Ecommerce, File Navigator and ToDo examples - all very great starting points.

It’s also VERY fast, the only frameworks that beat it are very low level/hard to use IMHO - when comparing with say, react or angular - it’s very fast. (svelte and angular-cf-nozone come CLOSE, but, dioxus still beats them.)

One caveat - plan for a slightly higher initial download time, but lightning fast afterwards.

Note: dioxus is also starting to tout itself as a fullstack framework - including backend. While this is true, it’s very early days, and is quite limited compared to the main web frameworks covered in part 3, so, probably don’t use it for this, unless your app is super simple. It’s pretty high risk right now IMHO.

If dioxus grinds your gears? Link to heading

Pretty simple choice at that point, the clear stand-outs are:

  • yew for web
  • tauri for desktop
  • clap for cli
  • flutter_rust_bridge for a flutter app (until tauri supports mobile anyway…)