ONE UI MODEL. EVERY SURFACE.

Build once. Deliver everywhere.

Fission gives Rust teams one coherent way to build polished applications for desktop, web, mobile, terminal, static sites and server-rendered sites, from one codebase and one widget model.
$
cargo install cargo-fission
Plain Rust
No DSL or bridge
Nine targets
One codebase
Production ready
Shipping today
Desktop
Terminal
Web
Compact layout
WHY FISSION
One foundation. Less repeated work.
Tangible benefits for developers, teams and organisations.
Move faster
Share application logic, state and interface across every target instead of rebuilding them for each platform.
Stay consistent
One widget set and one set of design tokens keep behaviour and look aligned as the product grows.
Own the stack
Plain Rust types, portable primitives and explicit escape hatches when a platform needs something special.
PLAIN RUST
Plain Rust in. Native apps out.
State is a struct, updates are typed reducers and the interface is a value built from them. When the state changes, Fission rebuilds the view and updates only what changed.
Follow the quickstart →
How the runtime works →
#[fission_reducer(Increment)] fn on_increment(state: &mut CounterState) { state.count += 1; } impl From<CounterApp> for Widget { fn from(_: CounterApp) -> Self { let (ctx, view) = fission::build::current::<CounterState>(); Column { children: vec![ Text::new(format!("Count: {}", view.state().count)).into(), Button { on_press: Some(with_reducer!(ctx, Increment, on_increment)), child: Some(Text::new("Increment").into()), ..Default::default() } .into(), ], ..Default::default() } .into() } }
HOW IT WORKS
Different targets. One way of working.
Write your app once as plain Rust, then run it on every surface with the fission command.
macOS
Windows
Linux
Web
Android
iOS
Terminal
Static site
SSR
PRODUCTION
Built for real delivery
What it takes to ship and maintain high-quality applications on every target.
Shared state and UI
One codebase with the same behaviour on every target.
Native integration
Notifications, biometrics, camera and deep links where the platform allows.
Accessible by default
Semantics, keyboard navigation and focus handling are built in.
Tested and packaged
Drive real apps in tests, then package and publish with one command.
GET STARTED
Start in a minute
If you have Rust installed, four commands give you a running app. New to Rust? The quickstart walks through installing the toolchain first.
Open the quickstart →
Browse the examples →
cargo install cargo-fission fission init my-app cd my-app fission run # the same app on other targets fission add-target web android ios fission run --target web
Ready to build without limits?
Install the fission command and have an app running in a minute.