Ferrocene 25.11.0 包含首个通过 IEC 61508 (SIL 2) 认证的 Rust 核心库子集
Ferrous Systems 正式发布了 Ferrocene 25.11.0,这是其开源安全认证 Rust 编译器工具链的重大更新。本次发布标志着 Rust 在安全关键领域(Safety-Critical)应用的一个里程碑,因为它不仅更新了编译器,还填补了生态系统中缺失的关键一环。
核心突破:首个通过 SIL 2 认证的 Rust Core 库
本次更新最大的亮点是包含了通过 IEC 61508 (SIL 2) 标准认证的 Rust core 库子集。在 Rust 开发中,core 库是所有其他库的基础,对于不依赖操作系统(no_std)的嵌入式开发至关重要。此前,由于缺乏官方认证的基础库,开发者在构建合规系统时面临巨大的验证成本。此次 Ferrous Systems 与 TÜV SÜD 合作完成认证,直接消除了这一障碍,使得汽车、工业自动化等受监管行业的开发者能够直接在合规项目中使用 Rust 的核心功能,大幅降低了安全认证的门槛和成本。
紧跟上游:集成 Rust 1.89 和 1.90 特性 Ferrocene 25.11.0 继续保持与上游 Rust 生态的紧密同步,集成了 Rust 1.89 和 1.90 的最新特性。关键技术改进包括:
- Const Generics 增强:支持显式推断常量泛型参数,提升了代码的灵活性。
- FFI 互操作性提升:在
extern "C"函数中增加了对u128和i128类型的支持,增强了 Rust 与 C 语言遗留系统的交互能力。 - 开发者体验优化:引入了新的静态分析检查(Lints)以及支持交叉编译的文档测试(Doctests),进一步保障代码质量。
行业影响与展望 通过提供经认证的编译器和基础库,Ferrocene 25.11.0 为高安全等级软件开发提供了一套完整的解决方案。这不仅巩固了 Rust 作为 C/C++ 在嵌入式领域强有力竞争者的地位,也向业界证明了开源语言在严苛工业标准下的可行性。随着认证范围的扩大,未来更多高安全等级(如 ASIL D)的应用将变得触手可及。
阅读:https://ferrous-systems.com/blog/ferrocene-25-11-0/
文章《Hyper-util 发布可组合连接池:重塑 Rust 网络连接管理》
Sean McArthur 宣布在 hyper-util v0.1.19 中正式推出了可组合连接池(Composable Pools)。这一更新彻底改变了 hyper 生态中连接管理的构建方式,旨在通过高度模块化的设计,解决传统连接池功能臃肿且难以定制的问题。
核心变革:基于 Tower 的模块化设计
新的连接池架构被拆解为一系列独立的 tower Layer。开发者不再被迫使用一个包含所有功能的巨型连接池,而是可以根据具体需求,像搭积木一样灵活组合不同的策略。首批发布的四个基础组件包括:
- Singleton:仅维护单一活跃连接,完美适配 HTTP/2 的多路复用特性。
- Cache:提供标准的连接复用缓存,支持连接竞赛(如 Happy Eyeballs)以降低延迟。
- Negotiate:支持协议协商,能根据握手结果(如 ALPN)在 HTTP/1 和 HTTP/2 之间智能切换。
- Map:充当路由角色,根据请求特征将流量映射到特定的连接器,支持自定义键值逻辑。
// Note: some noise has been trimmed
let http1 = (
pool::cache(exec),
util::http1_request_target(),
util::http1_set_host(),
util::meta(MyMetaIdleAt::new),
conn::http1(),
);
let http2 = (
pool::singleton(),
conn::http2(),
);
let pool_layers = tower::layer::layer_fn(move |svc| {
pool::negotiate::builder()
.fallback(http1.clone())
.upgrade(http2.clone())
.inspect(|conn| conn.is_negotiated_h2())
.connect(svc)
.build()
});
let pool_map = pool::map::builder::<http::Uri>()
.keys(|dst| scheme_and_auth(dst))
.values(move |_dst| {
pool_layers.layer(connector.clone())
})
.build();
实际应用与优势
这种“按需付费”的设计显著提升了性能和灵活性。著名的 HTTP 客户端库 reqwest 已率先采用此架构重构了其内部连接池,成功实现了复杂的连接过期策略和并发限制,证明了该设计的成熟度。未来,开发者还可以轻松插入自定义层(如基于主机的限流),而无需分叉或修改上游代码。
阅读:https://seanmonstar.com/blog/hyper-util-composable-pools/
Wasmi 1.0 发布
Wasmi 1.0 发布:八年磨一剑,迈向稳定新篇章
Wasmi 1.0 正式发布,标志着这一专注于嵌入式环境的高效 WebAssembly 解释器在历经八年开发后,终于迎来了 API 稳定性的里程碑。本次发布由 Stellar 发展基金会(SDF)赞助,核心聚焦于标准兼容、安全性加固及可用性提升。
主要更新内容:
- 广泛的标准支持:不仅支持所有 Wasm 2.0 特性,还提前实现了
multi-memory、memory64、custom-page-sizes和simd(可选)等 Wasm 3.0 提案,显著增强了对复杂应用的支持能力。 - 安全性与精简:通过了 Runtime Verification 的专业安全审计,并接入 Google OSS-Fuzz 进行持续测试。同时,将外部依赖大幅削减至仅剩
spin和wasmparser两个,极大地降低了攻击面和维护成本。 - 开发者体验升级:引入了官方 C-API 绑定,支持跨语言集成;新增“可加油的恢复调用”(Refueled Resumable Calls),允许在 fuel 耗尽时暂停并在补充后恢复执行,非常适合构建类似操作系统的任务调度机制。
展望未来,Wasmi 2.0 已在研发中,将通过引入多种指令分发模式(如直接线程化分发),重新将焦点回归到极致的执行性能上。
公告:https://wasmi-labs.github.io/blog/posts/wasmi-v1.0/
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论