Rust 1.95.0 发布公告
Rust 团队于 2026 年 4 月 16 日宣布发布 Rust 1.95.0 版本。
主要新特性
-
cfg_select!宏- 引入了新的
cfg_select!宏,类似于编译时的match配置语句 - 功能与流行的
cfg-ifcrate 相似,但语法不同 - 会展开为第一个配置条件为真的分支内容
- 可用于根据不同平台或配置选择不同的代码实现
- 引入了新的
-
match表达式中的if-let守卫- Rust 1.88 稳定了 let 链式语法
- Rust 1.95 将这个能力引入
match表达式 - 允许基于模式匹配的条件判断
- 注意:编译器目前不会将
if let守卫中的模式视为整体match穷尽性评估的一部分
稳定化的 API
MaybeUninit相关的多个转换和引用方法Cell类型的引用转换方法bool类型可以从整数类型进行TryFrom转换- 原子类型的
update和try_update方法 - 指针类型的
as_ref_unchecked和as_mut_unchecked方法 - 集合类型的
push_mut和insert_mut方法 Layout类型的多个新方法- 多个 API 现在支持在 const 上下文中使用
其他变更
- 取消稳定的功能
- 移除了稳定版对向 rustc 传递自定义目标规范 JSON 的支持
- 不应影响使用完全稳定工具链的用户
- 团队正在收集自定义目标的使用案例
Ironpress - 纯 Rust HTML/CSS/Markdown 转 PDF 工具
Ironpress 是一个纯 Rust 编写的 HTML/CSS/Markdown 到 PDF 转换器,无需浏览器和系统依赖。
核心特点
- 极致性能:比 Chrome headless 快 4,000 倍
- 简单 HTML:16 微秒/页(62,500 页/秒)
- 样式化 HTML:71 微秒/页(14,000 页/秒)
- Markdown:141 微秒/页(7,000 页/秒)
- 表格:341 微秒/页(2,900 页/秒)
- 完整报告:587 微秒/页(1,700 页/秒)
主要功能
- HTML 支持:50+ 元素(标题、表格、列表、表单、媒体、图片、内联 SVG)
- CSS 引擎:支持 Flexbox、Grid、多列布局、calc()、CSS 变量、@media、@page、@font-face
- 字体系统:
- 基础 PDF 字体
- 自定义 TTF 字体嵌入和子集化
- 系统字体发现
- Unicode/CJK 字体回退
- 数学公式:通过
$...$和$$...$$支持 LaTeX 语法 - SVG 渲染:路径、形状、渐变、变换、裁剪路径
- 图片支持:JPEG、PNG、数据 URI、本地文件、远程 URL
- PDF 输出:PDF 1.4、书签、链接注释、页眉页脚、渐变
使用方式
- Rust API:简单的函数调用和构建器模式
- 命令行工具:通过 cargo 安装使用
- 多语言绑定:Python、Ruby
- WebAssembly:100% 浏览器端运行
- 安全性:默认对 HTML 进行清理
质量保证
- 2200+ 单元测试
- 基于属性的测试
- 6 个模糊测试目标
- 对比测试仪表板
Ironpress - 纯 Rust HTML/CSS/Markdown 转 PDF 工具
ndatafusion:为 DataFusion 提供线性代数和机器学习能力
作者在 r/rust 社区发布了新项目 ndatafusion 🪐
项目目标
- 让 Apache DataFusion 成为处理线性代数和机器学习工作负载的更自然平台
- 通过显式的 Arrow/DataFusion 契约为 DataFusion 引入数值计算能力
技术特点
- 底层由 nabled 驱动(作者开发的另一个用于线性代数/机器学习的 Rust crate)
- 解决核心问题:当使用 Arrow 和 DataFusion 时,不必在需要向量或矩阵运算时切换到其他生态系统
项目意义
- 填补了 Rust/DataFusion 生态系统在这一层面的空白
- 目前该领域缺少直接针对此类需求的解决方案
相关链接
- Crates.io: https://crates.io/crates/ndatafusion
- 文档: https://docs.rs/ndatafusion
- GitHub: https://github.com/georgeleepatterson/ndatafusion
反馈征集
作者特别希望获得以下领域开发者的反馈:
- Rust 查询引擎
- Arrow 原生系统
- SQL 扩展
- 机器学习/数据基础设施
ndatafusion:为 DataFusion 提供线性代数和机器学习能力
Zenoh 1.9.x: Longwang 版本发布
Zenoh 1.9.x "Longwang"(龙王)版本于2026年4月17日在巴黎发布。该版本以中国神话中掌管海洋、水和天气的龙王命名,象征着其支持日益复杂网络拓扑的能力。
核心亮点
-
Regions(区域)架构
- 突破了传统的三层 router/peer/client 层级限制
- 支持任意深度的网络拓扑层级结构
- 可自定义网关关系配置
- 采用灵活的区域树模型替代固定的路由模型
- 允许边缘机器人部署将中心节点作为客户端而非路由器连接
-
QUIC 传输增强
- 流多路复用:为每个优先级设置独立的 QUIC 流,消除混合优先级流量中的队头阻塞问题
- 混合可靠性:在单个 QUIC 连接上结合可靠流和尽力而为的数据报,优化性能
- 可靠 UDP:通过非安全 QUIC 模式提供可靠性和多路复用,无需 TLS 开销,适用于可信环境
-
Zenoh-Go 语言绑定
- 官方推出的 Go 语言绑定
- 符合 Go 语言习惯的 API 设计
- 首日即提供完整 API 覆盖
-
Zenoh-Pico 异步执行器
- 单线程任务执行,降低资源使用
- 将高级发布-订阅、连接事件、自动重连和点对点模式等功能扩展到单线程环境
-
Nuze 0.3.0
- 支持 Zenoh 消息解码
- 改进了基于 Nu 的 Zenoh CLI 中的匹配监听器命令
重大变更
版本引入了区域标识符的变更,并对节点绑定关系进行了限制:路由器只能位于其他路由器的南向(该限制在连接建立时强制执行)。除此约束外,用户可以完全自由地设计区域树架构。
--
From 日报小组 Mike
社区学习交流平台订阅:
1
共 0 条评论, 1 页
评论区
写评论还没有评论