9 个版本

0.0.9 2024 年 8 月 15 日
0.0.8 2024 年 8 月 13 日

#414 in GUI

Download history 359/week @ 2024-08-05 228/week @ 2024-08-12

每月 587 次下载

Apache-2.0

3MB
61K SLoC

Waynest

Waynest 是一个基础库,旨在处理 Wayland 协议的底层方面。它建立在 Rust 的异步生态系统之上,利用 Tokio 库来高效管理异步任务。

该库负责实现 Wayland 通信协议,并为与之交互提供基本实用工具。代码的大部分内容是从 XML 接口描述自动生成的。

概述

Waynest 故意设计为底层库。它不适用于大多数场景的直接使用,但作为构建更高层库和应用程序的关键构建块。

对于正在开发 Wayland 客户端的开发者,Waynova 是一个更好的选择。Waynova 基于 Waynest,提供方便的辅助工具并自动生成大量样板代码。

如果你的目标是创建 Wayland 合成器,你可能会对 Verdi 感兴趣。Verdi 在内部使用 Waynest。

用法

Waynest 的代码库分为三个主要模块

Wire 模块

wire 模块实现了 Wayland 协议的核心通信格式。它便于客户端和服务器之间建立双向连接。此模块的核心组件是 Socket 结构,它实现了 SinkStream 特性,便于与 Rust 的异步生态系统集成。

Server 模块

server 模块包含从 XML 接口定义生成的特质。实现这些特质对应于实现相应的 Wayland 协议。Waynest 不对底层实现做出假设,但提供了发送事件到客户端所需的所有工具。要实现任何协议,开发者需要实现 Dispatcher 特质,这可以通过提供的宏轻松推导。

client 模块

待定

许可

本项目受 Apache-2.0 许可协议 许可。有关更多信息,请参阅 LICENSE 文件。

依赖

~5–16MB
~203K SLoC