Rust 1.94 发布。在 FreeBSD 内核中尝试使用 Rust。Turso 数据库和 Rust 版 VCAD。

Rust 1.94 编程语言现已发布。该语言由 Mozilla 项目创建,目前由独立非营利组织 Rust 基金会支持开发。该语言注重内存安全,并提供了实现高并行度任务执行的工具,同时无需使用垃圾收集器和运行时(运行时简化为标准库的基本初始化和维护)。

Rust 的内存管理方法旨在消除指针操作错误,并防止底层内存管理问题,例如访问已释放的内存、解引用空指针、缓冲区溢出等等。该项目正在开发 Cargo 包管理器,用于分发库、简化构建并管理依赖项。crates.io 仓库用于托管库。

Rust 在编译时通过引用检查、跟踪对象所有权、跟踪对象生命周期(范围)以及评估代码执行期间内存访问的正确性来提供内存安全。 Rust 还提供防止整数溢出的保护,要求在使用前初始化变量,更好地处理标准库中的错误,默认应用不可变引用和变量的概念,并提供强静态类型以最小化逻辑错误。

主要创新:

  • 切片类型现在新增了 `array_windows` 方法。该方法创建一个迭代器,用于在固定大小的窗口中遍历切片,每次迭代推进一个元素。与之前可用的 `windows` 方法不同,`array_windows` 使用固定大小的窗口,并且每次迭代返回一个固定大小的数组引用(`&[T; N]`),而不是一个大小未定义的切片引用(`&[T]`)。由于数组大小最初对编译器是已知的,因此可以通过避免在每次迭代阶段进行边界检查来提高性能。`let slice = [0, 1, 2, 3]; let mut iter = slice.array_windows(); assert_eq!(iter.next().unwrap(), &[0, 1]); assert_eq!(iter.next().unwrap(), &[1, 2]); assert_eq!(iter.next().unwrap(), &[2, 3]); assert!(iter.next().is_none());`
  • Cargo 包管理器的配置文件(.cargo/config.toml)实现了“include”指令,允许您直接插入其他文件的内容。例如:`include = [ "frodo.toml", "samwise.toml", ]` 和 `include = [ { path = "required.toml" }, { path = "optional.toml", optional = true }, ]`
  • 清单文件和配置文件中已添加对新版 TOML 1.1 标记语言的支持。新版本增加了对多行嵌入式表格的支持、用于插入十六进制字节表示的“\xHH”转义序列、用于“\u001B”的“\e”转义序列,以及在最后一个元素末尾添加逗号和省略时间值中的秒数的功能。现在可以将 `serde = { version = "1.0", features = ["derive"] }` 替换为 `serde = { version = "1.0", features = ["derive"], }`
  • API 的新部分已移至稳定类别,包括特性的方法和实现已稳定:
    • <[T]>::array_windows
    • <[T]>::element_offset
    • LazyCell::get
    • LazyCell::get_mut
    • LazyCell::force_mut
    • LazyLock::get
    • LazyLock::get_mut
    • LazyLock::force_mut
    • impl TryFrom供使用
    • std::iter::Peekable::next_if_map
    • std::iter::Peekable::next_if_map_mut
    • x86 avx512fp16 指令集的内部函数
    • AArch64 NEON fp16 指令集的内部函数
    • f32::consts::欧拉角_伽玛
    • f64::consts::欧拉角_伽玛
    • f32::consts::黄金分割率
    • f64::consts::黄金分割率
  • “const”符号用在函数中:
    • f32::mul_add
    • f64::mul_add
  • riscv64im-unknown-none-elf 平台已升级至支持级别 3。支持级别 3 包括基本支持,但不包括自动化测试、官方构建版本发布或构建验证。

此外,我们想重点介绍一下近期发布的与 Rust 相关的项目和活动:

  • Ayrton Muñoz 曾为 Rust 编译器实现了对索尼 PlayStation 1 平台的支持,并将 FreeBSD 移植到搭载 Apple Silicon 芯片的计算机上。如今,他又实现了用 Rust 为 FreeBSD 编写内核组件和设备驱动程序的功能。为了方便测试,他提供了一套 KPI(内核编程接口)绑定,使得在 FreeBSD 内核中使用 Rust 代码成为可能。此外,他还提供了 virtio 声卡驱动程序 (virtio_snd)、用于 M2 MacBook 键盘的 DockChannel HID 驱动程序,以及多个基于 Apple Silicon 芯片的 Mac 计算机子系统底层驱动程序,所有这些驱动程序都是使用这些绑定创建的。

    Rust 绑定的开发工作自 2024 年底以来一直在进行中。目前,这些绑定仅实现了部分 C-KPI,稳定性尚待提高,但随着时间的推移,开发团队计划提升其稳定性,使其达到与 C 语言类似接口相同的水平。例如,virtio_snd 驱动程序适用于在 QEMU 中播放音乐。预计到 2026 年,Rust 绑定将足够稳定,届时感兴趣的开发者即可开始使用它们编写代码。

  • NetBSD 开发者 Benny Siegert 解释了为什么 NetBSD 内核不会支持 Rust:NetBSD 支持的架构中,Rust 尚不可用;维护 pkgsrc 中现有的 Rust 工具链是一项巨大的工作,而且只有少数开发者在维护;内核对 Rust 的支持需要将 Rust 编译器包含在基础系统中;在 NetBSD 上引导 Rust 需要使用一个旧的二进制包,这对于以源代码形式分发的自包含发行版来说是不可接受的;Rust 的发布周期与 NetBSD 旧分支的开发和支持周期不兼容(例如,2020 年发布的 NetBSD 9 仍在继续得到支持,这意味着需要发布和支持一个已有六年历史的 Rust 编译器)。
  • Опубликован выпуск встраиваемой в приложения СУБД Turso 0.5, написанной на языке Rust и совместимой с SQLite на уровне диалекта SQL, формата файлов БД и C API. Из расширенных возможностей отмечается механизм CDC (Change data capture) для отслеживания изменения БД в реальном времени, использование io_uring для асинхронного ввода/вывода в Linux, поддержка векторного поиска, наличие выражения ALTER для изменения схемы БД, возможность шифрования данных в БД, режим инкрементальных вычислений, конструкция «BEGIN CONCURRENT».
  • 一个旨在使 Rust 标准库能够在 GPU 端程序中使用起来的项目。
  • Emuko — эмулятор RISC-V, написанный на Rust, способный загружать Linux, поддерживающий JIT-компиляцию, способный сохранять и восстанавливать снапшоты состояния.
  • RustConn(flatpak)是一个用于管理与其他主机外部网络连接的图形界面,支持 SSH、RDP、VNC、SPICE、Telnet、串口、Kubernetes、零信任和 SFTP。该代码使用 Rust 语言编写,并基于 GTK4 和 Wayland。
  • zlib-rs 0.6 项目发布了一个新分支,这是首个完全兼容 zlib C API 的稳定版本,可作为 zlib 的透明替代方案。该项目旨在创建一个安全的 zlib 数据压缩库替代方案。开发工作与 zlib-ng 项目密切相关,后者正在开发 zlib 的高性能版本。
  • VCAD项目是一个参数化计算机辅助设计(CAD)系统的开发项目,该系统使用Rust语言编写,并集成了基于MCP协议的AI代理。它支持3D建模、仿真、2D草图绘制、组件装配、STEP文件导入以及STL/GLB/STEP/DXF文件导出。
  • 我们发布了一个用 Rust 编写的语音识别系统,该系统采用了 Mistral Voxtral Mini 4B 实时人工智能模型和 Burn 机器学习框架。该项目专注于为实时流媒体转录提供即时语音识别功能。
  • c2rust 0.22 工具包已发布。它旨在将 C 代码(C99)转换为不安全的 Rust 表示形式,其结构与原始 C 代码类似。生成的框架可用于逐步迁移到惯用的 Rust 语言,并移除不安全的代码块。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster