Rust 1.64.0 发布


Rust 团队于今天发布了 Rust 1.64.0 新版本,1.64.0 稳定版中的主要更新内容如下:

IntoFuture 增强 .await

Rust 1.64 稳定了 IntoFuture 特性。IntoFuture 是一个类似于 IntoIterator 的特性,但 IntoFuture 不支持 for ... in ... 循环,而是改变了 .await 的工作方式。它可以等待任何可以通过 IntoFuture 转换为 Future 的东西,这可以帮助你的 API 变得更友好.

corealloc 中与 C 语言兼容的 FFI 类型

当调用或被 C ABI 调用时,Rust 代码可以使用 c_uintc_ulong 等类型别名以在任何目标上匹配来自 C 的相应类型,而不需要特定于目标的代码或条件。

以前,这些类型别名只在 std 中可用,所以为嵌入式目标和其他只能使用 corealloc 的情况下编写的代码不能使用这些类型。

Rust 1.64 现在在 core::fi 中提供了所有的 c_* 类型别名,以及用于处理 C 字符串的 core::f i::CStr。Rust 1.64 还提供了 alloc::ffi::CString,用于处理只使用 alloc crate 的 C 字符串。

rust-analyzer 现在可以通过 rustup 获得

rust-analyzer 现在作为 Rust 工具集的一部分被包含在其中。这使得下载和访问 rust-analyzer 更加容易,并使其在更多平台上可用。如今它可以作为一个 rustup 组件使用,可以通过以下方式安装。

rustup component add rust-analyzer

此时,要运行已安装的 rustup 版本,你需要这样调用它:

rustup run stable rust-analyzer

rustup 的下一个版本将提供一个内置的代理,这样运行可执行的 rust-analyzer 就会启动相应的版本。

Cargo 改进

当在一个 Cargo 工作空间中处理相关库或二进制 crate 的集合时,你现在可以避免 crate 之间共同的字段值的重复,如共同的版本号、仓库 URL 或 rust-version。这也有助于在更新 crate 时保持这些值的同步。

在为多个目标进行构建时,你现在可以向 cargo build 传递多个 --target 选项,以便一次性构建所有这些目标。

稳定的 API

以下方法和特性的实现现在已经稳定了:

  • [future::IntoFuture]()
  • [num::NonZero*::checked_mul]()
  • [num::NonZero*::checked_pow]()
  • [num::NonZero*::saturating_mul]()
  • [num::NonZero*::saturating_pow]()
  • [num::NonZeroI*::abs]()
  • [num::NonZeroI*::checked_abs]()
  • [num::NonZeroI*::overflowing_abs]()
  • [num::NonZeroI*::saturating_abs]()
  • [num::NonZeroI*::unsigned_abs]()
  • [num::NonZeroI*::wrapping_abs]()
  • [num::NonZeroU*::checked_add]()
  • [num::NonZeroU*::checked_next_power_of_two]()
  • [num::NonZeroU*::saturating_add]()
  • [os::unix::process::CommandExt::process_group]()
  • [os::windows::fs::FileTypeExt::is_symlink_dir]()
  • [os::windows::fs::FileTypeExt::is_symlink_file]()

这些类型以前在 std::fi 中是稳定的,但现在在 corealloc 中也可用:

  • [core::ffi::CStr]()
  • [core::ffi::FromBytesWithNulError]()
  • [alloc::ffi::CString]()
  • [alloc::ffi::FromVecWithNulError]()
  • [alloc::ffi::IntoStringError]()
  • [alloc::ffi::NulError]()

这些类型以前在 std::os::raw 中是稳定的,但现在在 core::ffistd::ffi 中也可用

  • [ffi::c_char]()
  • [ffi::c_double]()
  • [ffi::c_float]()
  • [ffi::c_int]()
  • [ffi::c_long]()
  • [ffi::c_longlong]()
  • [ffi::c_schar]()
  • [ffi::c_short]()
  • [ffi::c_uchar]()
  • [ffi::c_uint]()
  • [ffi::c_ulong]()
  • [ffi::c_ulonglong]()
  • [ffi::c_ushort]()

更多详情可查看:https://github.com/rust-lang/rust/releases/tag/1.64.0


相關推薦

2024-05-18

何环境中运行的现代开源高性能 RPC 框架。gRPC 1.64.0 现已发布,包含了一些完善、改进和错误修复;具体更新内容如下: Core [BoringSSL] 更新third_party/boringssl-with-bazel。 ( #36435 ) [build] 限制 grpc_public_hdrs 和 grpc++_public_hdrs

2023-07-18

近日,Rust开源社区发布1.71.0版本,实现对龙架构(LoongArch)指令集的原生支持。 龙架构操作系统发行版和开发者可基于上游社区源代码构建或直接下载Rust开源社区发布的龙架构二进制版本。Rust开发者将在龙架构平台上获得良

2023-11-18

过通常的批准流程(例如语言 FCP)才能出现在规范的已发布(非草案)版本中。 语言和规范团队应努力拥有至少一名共同成员(例如 Felix)充当联络人,以帮助确保我们对次要变更与重大变更的理解保持同步。 目标 规范

2023-08-12

Rust通用代码生成器莲花尝鲜版七发布最新视频,赢得高冷的Rust公主的垂青 Rust通用代码生成器莲花尝鲜版七已发布最新介绍视频,详细解释了sqlx从0.3.5升级到0.7.1和消除90%的编译警告的具体情况。并且详细解释了Rust代码生成物

2023-08-02

rust-foundation-report-security-initiative-progress Rust 基金会发布了首份安全计划报告,详细介绍了最近的 Rust 安全重点领域、里程碑和即将推出的计划。Rust 基金会的安全计划于 2022 年 9 月创建,旨在支持和推进 Rust 编程语言生态系统内

2023-06-22

调解团队成员)、@Mark-Simulacrum(基金会核心项目主管,发布团队负责人)、@rylev(基金会核心项目主管)、@technetos(调解团队成员)和@yaahc(基金会合作项目主管)共同撰写。 而 Rust 项目的大部分发展和维护工作(例如编译

2021-11-24

Rust 审核团队 (Moderation Team) 昨日发布公告称,他们已集体辞职且即刻生效。团队成员 Andrew Gallant 表示此举是为了抗议 Rust 核心团队 (Core Team) 不对除自己以外的任何人负责。 Andrew Gallant 在公告中写道,由于核心团队在组织

2023-04-27

第一个官方 GCC 13 版本即将发布,但 GCC 的 Rust 前端项目 gccrs 却不会如期出现在此版本中。 去年 12 月,Gccrs 被批准合并到 GCC 主线,所有 gccrs 代码也都被合并到了 GCC 13 上游代码库中。但时至今日,编译器仍未就支持 Rust 做好

2022-09-18

将目标合并到上游的最低分类级别。但 Tier-3 目标在 Rust 发布渠道中缺乏官方编译器构建,缺乏 Rust持续集成 (CI) 保证,并迫使用户使用 nightly/unstable 的编译器构建。 David 希望将 Rust UEFI target 提升到 Tier 2,这样他们就可以

2023-04-29

,微软 Azure 首席技术官 Mark Russinovich 还曾在社交平台上发布动态呼吁,开发人员应该更多的使用 Rust 而不是 C/C++ 来启动新项目。 另一方面,虽然用 Rust 重写 Windows 不会很快发生,但微软对 Rust 的支持或使开源社区受益。开

2024-08-18

标,代表预计将产生最广泛整体影响的目标。包括: 发布 Rust 2024 版本。2024 版计划进行的修改包括:通过调整捕获行为,支持-> impl Trait 和 async fn;通过保留gen keyword,允许在未来添加(async)生成器,以及更改

2024-04-04

的 Rust 代码正准备升级到 Rust 1.78,该版本将在一个月后发布为稳定版。 虽然Rust 1.78要到5月初才会发布,不过由米格尔-奥赫达(Miguel Ojeda)领导的Rust Linux内核开发人员已经在为下一次升级做准备了。 随着向 Rust 1.78 的转变,

2023-03-26

Rust 团队于近日发布了 Rust 1.68.1 新版本,1.68.1 是一个错误修复版本,主要更新内容如下: Rust 1.68.1 稳定版主要包含对 Rust 的 CI 构建 Windows MSVC 编译器方式的改变,不再为 Rust 代码启用 LTO。 目前认为这对 ThinLTO 的广泛使用没

2023-06-06

动程序。 据介绍,长期内核开发者 Fujita Tomonori 在周日发布了这组补丁,包括提供网络设备驱动程序的 Rust 抽象和    初始的 Rust 虚拟驱动程序,以帮助审查早期代码。到目前为止,网络子系统中 Rust 的实际硬件