< 返回版块

Mike Tang 发表于 2026-04-19 08:36

Rust 1.95.0 发布公告

Rust 团队于 2026 年 4 月 16 日宣布发布 Rust 1.95.0 版本。

主要新特性

  • cfg_select!

    • 引入了新的 cfg_select! 宏,类似于编译时的 match 配置语句
    • 功能与流行的 cfg-if crate 相似,但语法不同
    • 会展开为第一个配置条件为真的分支内容
    • 可用于根据不同平台或配置选择不同的代码实现
  • match 表达式中的 if-let 守卫

    • Rust 1.88 稳定了 let 链式语法
    • Rust 1.95 将这个能力引入 match 表达式
    • 允许基于模式匹配的条件判断
    • 注意:编译器目前不会将 if let 守卫中的模式视为整体 match 穷尽性评估的一部分

稳定化的 API

  • MaybeUninit 相关的多个转换和引用方法
  • Cell 类型的引用转换方法
  • bool 类型可以从整数类型进行 TryFrom 转换
  • 原子类型的 updatetry_update 方法
  • 指针类型的 as_ref_uncheckedas_mut_unchecked 方法
  • 集合类型的 push_mutinsert_mut 方法
  • Layout 类型的多个新方法
  • 多个 API 现在支持在 const 上下文中使用

其他变更

  • 取消稳定的功能
    • 移除了稳定版对向 rustc 传递自定义目标规范 JSON 的支持
    • 不应影响使用完全稳定工具链的用户
    • 团队正在收集自定义目标的使用案例

Rust 1.95.0 发布公告

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 中的匹配监听器命令

重大变更

版本引入了区域标识符的变更,并对节点绑定关系进行了限制:路由器只能位于其他路由器的南向(该限制在连接建立时强制执行)。除此约束外,用户可以完全自由地设计区域树架构。

Zenoh 1.9.x: Longwang 版本发布

--

From 日报小组 Mike

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页