2 releases
0.1.1 | Mar 7, 2024 |
---|---|
0.1.0 | Mar 6, 2024 |
#218 in GUI
38 downloads per month
11MB
241K
SLoC
kwui
使用 JSX、CSS 构建简单的桌面应用。
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; }
`
});
快速开始
- 运行示例
git clone https://gitee.com/wanghoi/kwui-rs.git cargo run --example installer
- 集成到您的Rust项目
cargo add kwui
特点
- 简单实用
- 适合快速开发,支持热重载
- 易于使用Rust语言开发业务逻辑
- 小巧无第三方依赖
- 兼容性好
- 基于Direct2D实现GPU加速,电脑配置过低、GPU不可用时回落到软件渲染
- 在生产环境,成千上万台电脑上使用
- 优秀的多显示器与DPI缩放支持
- 脚本驱动:
- 基于QuickJS扩展,原生JSX支持,i18n支持
- 类似React Hooks的组件生命周期处理
- 布局功能丰富,样式美观
- 符合 CSS 2.2 标准的排版与样式
- 强大的图文混排,富文本支持
- 中文输入法支持
- 易于扩展
- 为原生渲染场景,如视频渲染做了优化
- 支持JavaScript,C++,Rust编写业务逻辑
- 支持C++扩展DOM,处理原生事件和渲染
样例展示
通话质量测试工具
远程桌面客户端
安装程序
常见问题
-
已经有很多界面库了,为什么还要重复造轮子?
为了解决工作中的问题:
- 开发安装程序,需要界面美观,为了国际化需要自适应布局。
- 多进程重构,需要UI代码编写一次,处处复用。
- 音视频开发,需要便于C++扩展。
- 业务逻辑使用Rust语言开发,需要为其提供界面。
因为有趣:
- 学习浏览器标准。
- 学习Flutter, Electron, AWTK。