neohtop - 使用 Tauri、Rust 和 Svelte 构建的现代跨平台系统监视器
neohtop 是一个使用 Tauri、Rust 和 Svelte 构建的现代跨平台系统监视器。它具有以下主要功能:
- 实时监控进程
- 跟踪 CPU 和内存使用情况
- 美观的现代 UI,支持深色/浅色主题
- 进程搜索和过滤
- 固定重要进程
- 进程管理(杀死进程)
- 按任意列排序
- 自动刷新系统统计数据
技术栈包括前端使用 SvelteKit 和 TypeScript,后端使用 Rust 和 Tauri,样式使用 CSS 变量进行主题化,图标使用 FontAwesome。
开发环境需要 Node.js (v16 或更高版本)、Rust (最新稳定版)和 Xcode 命令行工具(仅适用于 macOS)。安装依赖、运行开发模式、构建生产版本和构建通用 macOS 二进制包的命令也在总结中给出。
https://github.com/Abdenasser/neohtop
async Rust io uring 库可能的漏洞
这篇文章讲述了一个名为Barbara的工程师在尝试将她的异步Rust Web服务从使用epoll驱动转换为io_uring驱动时遇到的问题。主要内容如下:
-
Barbara最初编写了一个简单的TCP服务器示例,使用monoio这个支持epoll和io_uring的运行时库。代码看起来与使用Tokio时没什么区别。
-
为了增加处理超时的功能,Barbara使用了select!语句,允许服务器在一定时间无连接时执行其他任务。这在io_uring下也工作正常。
-
但是当Barbara真正将服务部署到生产环境后,发现有些客户端请求从未被处理。进一步调查发现,尽管客户端线程能正常连接,但服务器主线程一直在触发超时,无法正常接收新连接。
-
文章指出,这是因为使用io_uring驱动程序时,存在潜在的TCP连接泄漏问题,而在epoll下则没有这个问题。而且这是所有io_uring运行时库都存在的通病。
-
最后作者呼吁Rust社区重视这个问题,因为它违背了Rust"安全无数据竞争"的保证,可能会导致性能下降和连接受限等严重后果。
https://tonbo.io/blog/async-rust-is-not-safe-with-io-uring
升级Rust旧代码需要注意的一些事项
该博客文章总结了作者在将一个现有的 Rust 项目从较旧的 Rust 版本重写为最新版本时的一些经验教训。主要内容包括:
-
明确项目的目标和期望,对比重写和渐进式重构的利弊。
-
利用最新的 Rust 编译器版本及相关工具(如 miri)来检测代码中的未定义行为(Undefined Behavior)。
-
审视代码库中的技术债务,确定需要重构的部分。逐步重构关键部分,而非一次性全部重写。
-
注意处理好并行安全(data race)、锁顺序deadlock等多线程相关的问题。
-
合理使用异步编程模型,避免过度同步等反模式。
-
密切关注编译器升级的变化,及时采纳新的语言特性和最佳实践。
-
重写过程中注重测试覆盖率,并保持向后兼容性。
-
与社区保持沟通,促进经验交流和最佳实践的分享。
文章还分享了一个实际的未定义行为示例,体现了 miri 工具在发现这类潜在 bug 中的重要作用。
https://gaultier.github.io/blog/lessons_learned_from_a_successful_rust_rewrite.html
为什么涉及到的高质量工具几乎都是用Rust编写的?
该Reddit帖子提出了一个疑问:为什么涉及到的高质量工具几乎都是用Rust编写的?作者表示,在尝试各种计算机工具的过程中,每当发现一个体验良好、流畅、漂亮的工具时,几乎都是用Rust编写的,如Dufs文件服务器和GlazeWM窗口管理器。作者怀疑是否是Rust语言吸引了优秀的开发者,还是仅仅是一个幸运的巧合。该帖子反映了Rust在制作高质量工具方面的突出表现,引发了人们对Rust语言和社区的思考。
https://old.reddit.com/r/rust/comments/1gfs7zz/sincere_question_what_is_up_with_all_these_great/
--
From 日报小组 Mike
社区学习交流平台订阅:
评论区
写评论Over the years, I have noticed a trend. Every time I try something and say... "damn, this tool is good/smooth/nice"... almost always, it's written in rust.
开始看到标题我也是想: 差不多得了。。。
看了下面的讨论,感觉还是有点道理
《几乎》,逆天rust侠
iouring 取消的问题应该都知道了吧。。。