4 个版本

0.1.6 2023 年 8 月 27 日
0.1.5 2023 年 8 月 27 日
0.1.1 2023 年 8 月 27 日
0.1.0 2023 年 8 月 16 日

#1345 in GUI

Download history 40/week @ 2024-04-21 18/week @ 2024-04-28 21/week @ 2024-05-05 7/week @ 2024-05-12

162 每月下载次数

MIT 许可证

305KB
7K SLoC

Freya 🦀

Freya logo

Discord Server Github Sponsors codecov

网站 | 文档 | 书籍 | Discord

Freya 是一个由 🧬 Dioxus 和 🎨 Skia 驱动的 Rust 原生 GUI 库。

⚠️ 目前处于开发中,不能用于生产,但你可以先试玩!如果你有任何问题或问题,可以加入 Discord 服务器。



fn app(cx: Scope) -> Element {
    let mut count = use_state(cx, || 0);

    render!(
        rect {
            height: "20%",
            width: "100%",
            background: "rgb(233, 196, 106)",
            padding: "12",
            color: "rgb(20, 33, 61)",
            label { 
                font_size: "20", 
                "Number is: {count}"
            }
        }
        rect {
            height: "80%",
            width: "100%",
            background: "rgb(168, 218, 220)",
            color: "black",
            padding: "12",
            onclick: move |_| count += 1,
            label { "Click to increase!" }
        }
    )
}

Freya

想试试吗? 🤔

⚠️ 首先,查看 环境设置

克隆此仓库并运行

cargo run --example counter

您还可以尝试 freya-template

用法 📜

将 Freya 和 Dioxus 添加为依赖项

freya = "0.1"
dioxus = { version = "0.4", features = ["macro", "hooks"] }

特性 ✨

  • ⛏️ 内置 组件(按钮、滚动视图、开关等)
  • 🚇 内置 钩子 库(动画、文本编辑等)
  • 🔍 内置 调试工具 面板(实验性 ⚠️)
  • 🧰 内置组件 无头测试 运行器
  • 🎨 支持 主题化(目前不可扩展 ⚠️)
  • 🛩️ 跨平台(Windows、Linux、MacOS)
  • 🖼️ 支持 SKSL 着色器
  • 🔄️ 支持 Dioxus 热重载
  • 📒 支持多行 文本编辑(实验性 ⚠️)
  • 🦾 基本支持 无障碍性(实验性 ⚠️)
  • 🧩 与 dioxus-std 和其他 Dioxus 渲染器无关的库兼容

目标 😁

  • 性能和低内存使用
  • 良好的开发者体验
  • 跨平台支持
  • 合理的无障碍性支持
  • 有用的测试 API
  • 有用的可扩展组件和钩子

状态 ⌚

您可以通过查看 问题 跟踪了解哪些特性已实现,哪些尚未实现。

MIT 许可证

依赖项

~14–52MB
~802K SLoC