#cross-platform-gui #jsx #graphics #widgets #quickjs #api-bindings

sys kwui-sys

sys-crate for kwui - A GUI library with JSX/CSS support

13 releases

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

#776 in GUI

Download history 8/week @ 2024-09-11 15/week @ 2024-09-18 18/week @ 2024-09-25 2/week @ 2024-10-02 6/week @ 2024-10-09 3/week @ 2024-10-16 4/week @ 2024-11-27 54/week @ 2024-12-04 68/week @ 2024-12-11 8/week @ 2024-12-18 2/week @ 2024-12-25

134 downloads per month
Used in kwui

LGPL-3.0-or-later

145KB
2.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–3.5MB
~59K SLoC