#跨平台界面 #声明式界面 #UI 框架 #控件 #本地 #nightly #工具链

nuit

使用本地控件的 Rust 声明式、跨平台 UI 库

4 个版本

0.0.6 2024年8月20日
0.0.5 2024年8月19日
0.0.4 2024年1月23日
0.0.3 2023年8月9日

#813GUI

Download history 1/week @ 2024-05-21

每月160 次下载

GPL-3.0-or-later

215KB
1.5K SLoC

Nuit

Build

Nuit 是一个使用本地控件的 Rust 跨平台 UI 库。

Nuit 的 API 从 SwiftUI、Xilem、React 以及其他多个框架中汲取灵感,同时在 macOS 下使用 SwiftUI 作为底层。

[注意] 由于 Nuit 使用了多个前沿/不稳定编译器特性,包括

使用 rustup 可以方便地在每个目录的基础上进行配置 rustup override set nightly 或,作为此仓库自动配置 rust-toolchain.toml.

示例

use nuit::{Text, VStack, View, Bind, Button, State};

#[derive(Bind)]
struct CounterView {
    count: State<i32>,
}

impl CounterView {
    fn new() -> Self {
        Self { count: State::new(0) }
    }
}

impl View for CounterView {
    type Body = impl View;

    fn body(&self) -> Self::Body {
        let count = self.count.clone();
        VStack::new((
            Text::new(format!("Count: {}", count.get())),
            Button::new(Text::new("Increment"), move || {
                count.set(count.get() + 1);
            })
        ))
    }
}

fn main() {
    nuit::run_app(CounterView::new());
}

运行此示例,例如使用 cargo run -- counter,将启动

依赖

~0.7–1.6MB
~35K SLoC