< 返回版块

Mike Tang 发表于 2024-10-29 13:49

Smithay - 一个用Rust语言构建Wayland相关软件的框架

Smithay是一个用Rust语言构建Wayland相关软件的框架。

该项目包括3个主要组件:

  1. wayland-rs仓库包含了对Wayland协议的低级别绑定,主要有wayland-client和wayland-server两个crate,分别用于客户端和服务器端应用。

  2. SCTK(Smithay Client ToolKit)是一个用于编写Wayland客户端应用的crate,它建立在wayland-client之上,处理了编写客户端所需的很多基础工作。

  3. Smithay是该项目的旗舰crate,旨在作为编写Wayland服务器(合成器)的框架,建立在wayland-server之上,并处理与系统的交互(输入设备、图形、udev、会话等)。

本手册的第一部分专注于客户端应用,第二部分则关注服务器端。如果感兴趣的是服务器端,建议先熟悉客户端部分,因为客户端入门相对更容易,并且很多概念在服务器端也适用。

https://smithay.github.io/book/

fennec - 受Rust编程语言及其工具链启发而开发的PHP工具链

  1. Fennec是一个受Rust编程语言及其工具链启发而开发的PHP工具链,旨在为PHP开发者提供一套工具来编写更好的代码。

  2. Fennec目前处于早期开发阶段,功能尚未完全实现,现有功能也可能发生变化或中断。但作者正在公开开发以与社区分享进展。

  3. Fennec计划实现的核心功能包括字符串内联、词法分析器、抽象语法树、解析器、源码管理、AST遍历、名称解析、代码修复、错误报告、语义分析、符号表、代码检查、配置管理、字符串格式转换、代码格式化、静态分析、重构、代码生成、文档生成、测试运行等。

  4. 作者希望社区提出建议、撰写文档、贡献代码、资助项目、设计Logo等方式参与Fennec的开发。

  5. Fennec受到了多个Rust编写的其他工具和项目的启发,如Clippy、OXC、php-rust-tools等。

  6. 作者对一些已经为PHP社区做出重大贡献的工具如PHP CS Fixer、Psalm、PHPStan等表示感谢。

  7. Fennec采用MIT和Apache 2.0双重许可证。

这是一个雄心勃勃的PHP工具链项目,希望最终为PHP开发者提供一站式的编码辅助工具。

http://github.com/carthage-software/fennec

Motion - 一个用Rust编写的物理引擎

这是一个名为Motion的裸机物理引擎的介绍。Motion是一个用Rust编写的物理引擎,可以轻松快速地进行模拟。

文档首先展示了如何建立一个简单的事件循环,用于模拟物理过程。然后介绍了如何创建一个更复杂的2D对象,并设置其位置、大小、形状和速度等参数。

最后解释了为什么选择Rust编程语言来开发Motion。Rust是一种运行速度快、高效的语言,非常适合开发物理引擎。同时Rust也很灵活,可以让Motion在各种环境中使用。

https://github.com/juanperias/motion

ContainerYard - Rust在云原生中的又一进展

ContainerYard 是一种声明式、可重复和可重用的分散式方法,用于定义容器。它类似于 Nix flakes 和 Containerfiles(又称 Dockerfiles)的结合。ContainerYard 将 Containerfiles 分解为模块,每个模块代表容器的一些特定功能,例如 rust 模块定义了 rust 的安装。模块还支持 Tera 模板。一个 yard.yaml 文件用于将模块组合成 Containerfiles。

通过运行 yard build 命令,可以根据 yard.yaml 中定义的模块生成 Containerfile。每个模块由一个 Containerfile Tera 模板和一个 yard-module.yaml 文件组成,后者定义了模板的配置选项和依赖项。

ContainerYard 旨在促进一个可组合 Containerfile 模块的库生态系统。用户可以导入这些模块而无需太多配置。需要 Rust?只需将其添加到 yard.yaml 文件中。需要 Flutter?同样操作。使用 ContainerYard,您无需再定义某些 Containerfile 配置。如果您确实需要定制,ContainerYard 不会阻碍您,因为一切都基于 Containerfile,输出是纯 Containerfile。

ContainerYard 与 Nix Flakes 的区别在于,Nix Flakes 以开发人员灵活性为代价保证了可重复性,而 ContainerYard 是去中心化的,允许用户轻松使用不同的包管理器和上游源,因此牺牲了一些可重复性保证,但获得了完全的开发人员灵活性。ContainerYard 非常简单,建立在熟悉的开发人员工具(Containerfiles 和 Tera 模板)之上。

https://github.com/mcmah309/containeryard

--

From 日报小组 Mike

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页