< 返回版块

Mike Tang 发表于 2024-09-22 03:10

Twenty - 保护程序员的眼睛

Twenty旨在帮助用户每20分钟远离屏幕20秒钟,放松眼睛。它利用waycrate/exwlshelleventloop/iced_sessionlock来锁定屏幕。

用户可以通过Cargo或baker编译并安装该程序。使用twenty --init [light/dark]初始化,默认暗色模式。twenty --kill杀死程序进程。sudo bake uninstall卸载程序。

该项目由rv178和shivkr6共同创作,旨在通过强制实施20-20-20规则来保护用户的眼睛健康。它主要针对实现了ext-session-lock的合成器。

https://github.com/waycrate/twenty

Lala bar - 一个新的Linux桌面环境

这是一个用Rust编程语言编写的类似KDE的图形桌面环境程序,名为Lala bar。它是一个图层shell程序,包含了启动器、侧边栏和通知守护进程。

通知守护进程支持内嵌回复和默认操作。未来计划添加通知超时功能。

该程序使用了iced_layershell库,是作者waycrate的另一个项目。附有一张显示程序侧边栏界面的图片示例。

https://github.com/waycrate/lala-bar

mocks - 快速搭建模拟REST API服务

mocks是一个用于快速搭建模拟REST API服务的工具,主要有以下特点:

  1. 可以通过命令行快速启动一个基于JSON文件的模拟REST API服务器。
  2. 支持自动生成常见的CRUD接口,包括GET、POST、PUT、PATCH、DELETE等。
  3. 支持基于JSON文件热更新API响应数据。
  4. 支持调试模式,可将服务器接收到的请求数据持久化存储到文件中,方便调试。
  5. 提供健康检查端点,方便监控服务运行状态。
  6. 可通过Homebrew或Cargo进行安装。
  7. 开源项目,采用MIT许可协议。

总的来说,mocks为开发和测试场景下快速创建模拟数据服务提供了极大的便利,可以有效提升开发效率。

https://github.com/mocks-rs/mocks

在 Rust 和 C++ 之间进行互操作的一种技巧

这篇文章讨论了在 Rust 和 C++ 之间进行互操作的一种技巧。主要内容如下:

  1. alice.write_comment(..) 和 RUST_write_comment(alice, ..) 这两种调用方式在底层实际上是等价的,C++ 编译器会将前者转换为后者。所以 Rust 函数只是在模拟 C++ 编译器的行为。

  2. 我们依赖于 API 的兼容性,而不是 ABI 的兼容性。Rust 实现可以自由读写 C++ 类的私有成员,因为公有/私有只是 C++ 编译器实施的规则,而 CPU 不关心这些规则,只看内存字节。

  3. 我们必须使用繁琐的类型转换,因为我们确实在将一种类型 (User) 的内存重新解释为另一种类型 (UserC)。这在 C++ 标准布局类中是允许的,否则会导致不确定行为。

总的来说,这种技巧利用了 Rust 和 C++ 之间的 API 兼容性,绕过了 ABI 的限制,从而实现了在两种语言之间自由访问对方的数据结构。但同时也带来了一些低级别的不便,比如需要手动进行类型转换。

https://gaultier.github.io/blog/rust_c++_interop_trick.html

--

From 日报小组 Mike

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页