#wayland #platform #acrylic #ui-toolkit #apps #environments #graphics

acrylic-wayland

为 wayland 环境编译 acrylic 应用

15 个版本

0.3.5 2023 年 9 月 7 日
0.3.1 2023 年 6 月 4 日
0.2.4 2023 年 1 月 28 日
0.2.2 2022 年 12 月 4 日
0.2.0 2022 年 7 月 25 日

GUI 中排名第 888

每月 46 次下载

MIT 许可证

1.5MB
4K SLoC

🎨 acrylic

超便携、受网页启发的 UI 工具包,具有 SIMD 图形。

工作正在进行中!

此外,如果您已启用 SIMD 支持(默认情况下是启用),则需要 nightly 工具链。

🪂 功能

  • 对网页开发者来说感觉熟悉
  • 支持模板化
  • 集成的 JSON 状态存储
  • 抗锯齿
  • 输入 API 旨在提高可访问性
  • 纯 Rust 和安全
  • 完全 no_std

🏗️ 进度(核心包)

  • ☑ XML 解析
  • ☑ 类 flexbox 布局
  • ☑ PNG 图片
  • Railway 图片 [进行中]
  • ☑ 全部 no_std 支持
  • ☑ 文本节点
  • ☑ 状态存储
  • ☑ 圆形容器
  • ☑ 输入事件
  • ☑ 事件处理程序
  • ☑ SIMD 加速
  • ☑ 文本编辑
  • ☑ 模板化
  • ☐ 纹理缓存
  • ☐ 非硬编码状态文件
  • ☐ 滚动 [进行中]
  • ☐ 富文本
  • ☐ 外部链接
  • ☐ 视频播放
  • ☐ 音频播放

🧱 支持的平台

平台 链接 渲染 资产加载 事件处理
web acrylic-web 进行中
wayland acrylic-wayland 进行中
x11
gdi
fbdev
drmkms

⚡️ 快速入门

项目结构

.
├── Cargo.toml
├── assets
│   ├── rustacean-flat-happy.png
│   └── default.xml
└── src
    └── app.rs

一个资产:rustacean-flat-happy.png

您可以从 这里 获取它。将其放置在 assets/ 中。

视图布局:default.xml

<h-rem style="default">
    <inflate />
    <v-fixed length="400" gap="10">
        <inflate />
        <png file="rustacean-flat-happy.png" />
        <h-fixed length="40" gap="10">
            <inflate />
            <label text="Rust rocks!" />
            <inflate />
        </h-fixed>
        <inflate />
    </v-fixed>
    <inflate />
</h-rem>

代码:app.rs

use platform::{app, acrylic::{core::app::SimpleCallbackMap, ArcStr}};

fn layout_selector() -> ArcStr {
    "default.xml".into()
}

app!("./assets/", layout_selector, SimpleCallbackMap::new(), "default.json");

清单:Cargo.toml

[package]
name = "my-app"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = [ "cdylib" ]
path = "src/app.rs"

[dependencies]
# building for the web
platform = { package = "acrylic-web", version = "0.3" }

构建

cargo +nightly build --release --target wasm32-unknown-unknown

注意:这使用 nightly,因为 Rust 中的 SIMD 目前是不稳定的。

安装一个 web 服务器

httpserv 非常小,对于这个演示来说足够好了。

cargo install httpserv

下载启动您的应用的 HTML 文件

您可以从 这里 获取它。将其放置在项目的根目录中,与 cargo 清单相邻。

启动 web 服务器

从您的项目根目录

# normal start:
httpserv

# quiet + in the background
httpserv > /dev/null &

然后打开 https://127.0.0.1:8080/#release

预期结果

quickstart.png

☕ 联系方式 & 贡献

联系方式

您可以通过电子邮件或Discord联系我:bitsneak#1889

您可以用这些来询问关于这个项目的任何问题。

贡献

我们乐意通过Github Pull Requests接受所有贡献。

👉 相关链接

🕯️ 许可证

  • 代码使用MIT许可证
  • 嵌入式Noto字体使用SIL Open Font License许可证

依赖项

~11–20MB
~299K SLoC