8 releases

0.2.2 Jul 3, 2024
0.2.1 Jun 18, 2024
0.2.0-beta.3 Jun 12, 2024
0.1.1 Mar 7, 2024
0.1.0 Mar 6, 2024

#277 in GUI

LGPL-3.0-or-later

1MB
3.5K SLoC

kwui

A cross-platform GUI library for Rust focused on simplicity and fast development of small tools. Inspired by sciter.

Features

  • Builtin JavaScript engine, and CSS parser
  • React Hooks alike functional components API
  • Easy interop between Rust and JavaScript
  • Cross-platform support (Windows, Android)

Documentation

FAQ

  1. Why another GUI library?
  • Porting server-side Rust code to client-side quickly, to explore and evaluate new technology.
  • Porting tools to mobile platforms quickly.

Example - Hello world

import { useState } from "Keact";

function HelloWorld(props, kids) {
    let [n, setN] = useState(0);
    return <button onclick={() => setN(n + 1)}>{`Click ${n} times`}</button>;
}

app.showDialog({
    title: "Hello World",
	root: <HelloWorld />,
	stylesheet: css`
	button { margin: 10px; padding: 4px; background-color: orange; }
	button:hover { background-color: orangered; }
    `
});

VoIP Test tool

image

Remote Desktop

image

Installer

image

Android examples

image image

Dependencies

~0–4MB
~73K SLoC