< 返回版块

苦瓜小仔 发表于 2025-06-08 00:47

Tags:日报

嵌入式 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 程序和进程,使其在常用工具(如 bpftopps 等)中不可见。

它通过操作 bpfgetdents64 系统调用来实现这一功能。运行时需 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 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页