< 返回版块

苦瓜小仔 发表于 2025-06-21 23:18

Tags:日报

This Week in Rust #64

阅读:https://this-week-in-rust.org/blog/2025/06/18/this-week-in-rust-604/

嵌入式 Rust 半月刊:The Embedded Rustacean Issue #48

阅读:https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-48

LWN 文章《Asterinas: a new Linux-compatible kernel project》

作者:Ronja Koistinen

Asterinas 是一个用 Rust 编写的 Linux-ABI 兼容内核项目,采用“framekernel 架构”,结合了单体和微内核设计的优点。

它将需要 unsafe 的代码封装在库中,其余内核服务使用安全抽象开发,旨在提高系统安全性,同时保留单体内核的简单和高性能共享内存架构。

项目还计划进行形式化验证,与 CertiK 合作使用 Verus 验证内核。

目前 Asterinas 支持 x86 和 RISC-V 架构,支持 206 个 Linux 系统调用,目标是扩展 CPU 架构和硬件支持,提供云环境中的容器宿主操作系统。

阅读:https://lwn.net/SubscriberLink/1022920/5cc7ce0d6aea9fb9/

Reddit:https://www.reddit.com/r/rust/comments/1lfzw9v/lwn_asterinas_a_new_linuxcompatible_kernel_project/

文章《Writing a basic Linux device driver when you know nothing about Linux drivers or USB》

作者:crescentro

本文介绍了作者为 Nanoleaf Pegboard Desk Dock 编写 Linux 驱动的过程。

作者首先尝试通过 USB 捕获和分析官方驱动的通信协议,然后决定基于官方文档和自己的发现编写驱动。

在了解 USB 设备的基本概念后,作者使用 Rust 的 rusb 库编写了一个简单的驱动程序,能够向设备发送数据并接收响应。他还解决了设备因未读取中断而崩溃的问题,通过添加读取中断的代码,使设备能够正常工作。

最后,作者通过多线程实现了设备控制和中断处理的分离,为后续开发奠定了基础。

阅读:https://crescentro.se/posts/writing-drivers/

Reddit:https://www.reddit.com/r/rust/comments/1lgtc7v/writing_a_basic_linux_device_driver_when_you_know/

文章《Migrating off Legacy Tokio at Scale》

作者:Ronny Chan

Okta Workflows 引擎从 Tokio 0.1 迁移到 Tokio 1.0 的过程。

由于早期采用异步 Rust 生态系统,Okta Workflows 在 Tokio 1.0 发布前就已上线,代码难以维护。

迁移过程中,团队采用了兼容层和特性标志,逐步替换代码,避免了全面重写。

通过增加线程堆栈大小和谨慎选择堆分配,解决了 Tokio 1.0 的堆栈溢出问题。

最终,迁移使代码库更易读、更易维护,性能也有所提升。

阅读:https://www.okta.com/blog/2024/11/migrating-off-legacy-tokio-at-scale/

Reddit:https://www.reddit.com/r/rust/comments/1lgb0bo/migrating_off_legacy_tokio_at_scale/

Foxy:异步 HTTP 客户端

Foxy 是一个用 Rust 编写的轻量级异步 HTTP 客户端,专注于性能和易用性。

它基于 tokiohyper,支持 HTTP/2 和 TLS。Foxy 提供了简洁的 API,支持请求拦截、自动重试和超时等功能,还支持 JSON 和表单数据的自动序列化与反序列化。

它适用于需要高性能 HTTP 请求的 Rust 项目。

仓库:https://github.com/johan-steffens/foxy

Reddit:https://www.reddit.com/r/rust/comments/1lg7ucc/tell_me_what_you_think_about_my_rust_project/

Tako:异步 Web 框架

Tako 是一个用 Rust 编写的轻量级异步 Web 框架,受 Axum 启发但更注重明确性、可组合性和易理解性。

目前支持基本路由、请求提取器、中间件、SSE 和共享状态等功能。

项目尚在早期阶段。

仓库:https://github.com/rust-dd/tako

Reddit:https://www.reddit.com/r/rust/comments/1lgrjrf/tako_yet_another_async_web_framework_in_rust/

讨论:在 macOS 上分析内存问题

在 macOS 上尝试分析内存问题时,作者尝试了多种工具,但都未能成功。

valgrindmassifdhat 在 aarch64 上不支持,且尝试添加支持的分支可能会导致系统崩溃。

jemalloc 虽然在 2024 年添加了 macOS 支持,但生成的符号信息无效。

dhat-rs 无法解析生成的 JSON 文件。

Instruments.appleaks 也未能正常工作。

怀念 Linux 上的工具。

Reddit:https://www.reddit.com/r/rust/comments/1lg12fm/trying_to_profiling_heap_on_macos_is_frustrating/

讨论:爱上 Rust🦀 之后该何去何从?

Reddit:https://www.reddit.com/r/rust/comments/1lgdgxy/falling_in_love_with_rust_where_should_i_go_from/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页