嵌入式 Rust 半月刊 - The Embedded Rustacean Issue #47
阅读:https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-47
文章:《Rust For Foundational Software》
作者:corrode
这篇文章探讨了Rust语言在构建“基础软件”中的价值和定位。
文章指出,“系统编程”一词带有历史包袱,限制了Rust的应用范围,而“基础软件”更能体现Rust的潜力。
作者认为,Rust的核心价值在于构建可靠、高效且能支撑其他软件运行的平台。
Rust不仅适用于低级系统编程,还被广泛用于构建数据平面、媒体处理管道等关键业务服务。
强调,Rust是一种使能语言,它能帮助开发者跨越领域边界,从嵌入式到云计算,从数据科学到开发工具。
Rust的类型系统、所有权模型和特质系统使其能够以简单的核心机制构建复杂抽象。
作者呼吁将关注点从Rust作为C++替代品的观念中移开,转而关注Rust在构建长期维护的、可靠的基础设施方面的优势。
阅读:https://corrode.dev/blog/foundational-software/
Reddit:https://www.reddit.com/r/rust/comments/1l5ft51/rust_for_foundational_software/
文章:《Report on variadic generics discussions at RustWeek 2025》
作者:Olivier Faure
本文是关于2025年RustWeek上关于Rust语言中变长泛型(variadic generics)讨论的报告。
作者回顾了变长泛型的概念,即在类型系统中处理数量不定的参数,而非仅进行类型擦除。
目前Rust中尚无此特性,开发者常通过宏来模拟实现。在RustWeek的非正式讨论中,作者发现随着新特征求解器的部分稳定,Rust团队成员对讨论变长泛型持更开放态度。
Oli Scherer正在研究反射提案,虽与变长泛型有相似用例,但作者认为其无法完全取代变长泛型。
Oli 曾对变长泛型持怀疑态度,担心其复杂性,但作者说服了他存在更简单的实现方式。
Josh Triplett对变长泛型仍持谨慎乐观态度,认为改进的声明式宏可能覆盖类似用例,但作者认为只有变长泛型能覆盖通用情况。
尽管有人对变长泛型持怀疑态度,担心其增加语言复杂性,但作者引用去年文章指出,有强烈需求的开发者认为该特性至关重要,且宏的替代方案存在诸多问题。
作者计划撰写文章阐述变长泛型不应如何设计,以及非简单变长泛型的用例和可能发展方向,并考虑将变长泛型作为Rust项目目标提交,或撰写MCP或RFC。
阅读:https://poignardazur.github.io/2025/06/07/report-on-variadics-rustweek/
Reddit:https://www.reddit.com/r/rust/comments/1l5ige9/report_on_variadic_generics_discussions_at/
Brush - POSIX 和 bash 兼容的 shell
brush
(Bo(u)rn(e) RUsty SHell)是一个用 Rust 实现的 POSIX 和 bash 兼容的 shell。它已在 Linux、macOS 和 WSL 上构建并测试。原生 Windows 支持尚处于实验阶段。
brush 作为日常使用的交互式工具功能强大!它能够执行我们遇到的大多数 sh 和 bash 脚本。已知的限制已通过提交的问题进行跟踪。出于谨慎考虑,我们不建议在生产环境中使用它,以防它与您现有的稳定 shell 不完全一致。
仓库:https://github.com/reubeno/brush
Caracal - 在 Linux 中隐藏任何进程的工具
Caracal 是一个用 Rust 编写的工具,用于隐藏 Linux 系统中的 eBPF 程序和进程,使其在常用工具(如 bpftop
、ps
等)中不可见。
它通过操作 bpf
和 getdents64
系统调用来实现这一功能。运行时需 root 权限,通过指定进程 ID 和 eBPF 程序 ID 来隐藏目标。
Rust-trade - 量化交易系统
rust-trade
是一个用 Rust 编写的量化交易系统,主要功能包括实时从 Binance 获取市场数据并存储到 PostgreSQL、支持多交易对、生成 K 线和 VWAP 计算、提供 SMA 策略回测、集成 Binance API 并支持 WebSocket 实时更新、性能优化、跨平台支持以及详细的日志和性能验证功能。
仓库:https://github.com/Erio-Harrison/rust-trade
Reddit:https://www.reddit.com/r/rust/comments/1l59lrd/learn_rust_by_building_a_trading_system/
仓库:https://github.com/adgaultier/caracal
Reddit:https://www.reddit.com/r/rust/comments/1l5ivt2/caracal_hide_any_running_prrogram_on_linux/
讨论:字节匹配似乎缺少优化?
// 生成更好的汇编:一次性将多个字节加载到寄存器中,然后将它们与一个整数进行比较
#[inline(never)]
pub fn hello_match_str(st:&str) -> usize{
match st{
"Hello, World!\n" => 1,
"test" => 2,
_ => 3
}
}
// 更差的汇编:逐个字节比较
#[inline(never)]
pub fn hello_match_slice(st:&[u8]) -> usize{
match st{
b"Hello, World!\n" => 1,
b"test" => 2,
_ => 3
}
}
Godbolt:https://godbolt.org/z/c646rjcjE
Reddit:https://www.reddit.com/r/rust/comments/1l5h9xe/match_on_bytes_seem_to_be_missing_optimizations/
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论