< 返回版块

Yuan YQ 发表于 2025-05-26 11:05

Rust 版本的 Coreutils 0.1 发布

Ubuntu 25.10 计划默认搭载使用 Rust 语言开发的 Coreutils 来替代 uutils,这对于 GNU 的替代品而言,今年是具有重大意义的一年。为了推进项目,Rust 版本的 Coreutils 0.1 于今日发布。

继两个月前发布的 Rust Coreutils 0.0.30 版本后,如今推出的 Rust Coreutils 0.1 版本实现了版本号向 v0.1 里程碑的跨越。该版本带来了 “重大性能提升”,同时增加了对 SELinux 的支持,并提升了与 GNU Coreutils 的兼容性。

在性能方面,wclscattailseq 等 Coreutils 命令的执行速度现已达到或超过了 GNU Coreutils。这使得 Rust Coreutils 更具吸引力 —— 除了为确保内存安全而采用 Rust 语言编写外,它还开始在性能上不输基于 C 语言的 GNU Coreutils。 Rust Coreutils 0.1 为 cpmkdirlsinstall 等常用命令增加了 SELinux 集成功能。

Rust Coreutils 0.1 通过了 GNU 测试套件中的 522 项测试,较前一版本的 507 项有所提升。

Github 仓库:https://github.com/uutils/coreutils

GCC 编译器后端可以编译 rustc 了

这是一个振奋人心的消息:GCC 编译器后端现在可以完全编译 Stage 3 的 Rust 编译器了。这意味着它可以构建出一个功能完备的 Rust 编译器,该编译器又能再次用于构建新的编译器,如此循环往复。

此外,由于 Stage 2 和 Stage 3 生成的编译器在字节层面完全相同,我们可以确定 Stage 2 的编译器表现与 Stage 1的编译器完全一致(因为二者在构建 Rust 编译器时产生了相同的输出)。

这是推动 Rust 在更多平台上落地的重要一步。

尽管目前自举过程仅在 x86_64 架构的 Linux 系统上进行了测试,但我们计划未来对更多架构展开测试,其中甚至包括一些 Rust 目前完全不支持的架构!

不过别误会,要做的工作还有很多,cg_gcc 尚未完全就绪。测试、修复漏洞,以及更多的测试。尽管如此,前景一片光明,我们正以极快的速度稳步推进!

Github 仓库:https://github.com/rust-lang/rustc_codegen_gcc

serde-vars:在支持序列化的结构中使用环境变量

Serde Vars 是一个方便在支持序列化的结构中使用环境变量的库。例如,一个配置文件如下所示:

{
    "redis": {
        "host": "127.0.0.1",
        "port": 6379,
        "username": "${REDIS_USERNAME}",
        "password": "${REDIS_PASSWORD}"
    }
}

在使用对应的结构体读取配置文件内容的时候,无需额外的操作,即可使用环境变量:

#[derive(Debug, serde::Deserialize)]
struct Config {
    redis: Redis,
}

#[derive(Debug, serde::Deserialize)]
struct Redis {
    host: String,
    port: u16,
    username: String,
    password: String,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config_path = std::env::args()
        .nth(1)
        .unwrap_or_else(|| "config.json".to_owned());

    let config = std::fs::read_to_string(&config_path)?;
    
    let mut source = serde_vars::EnvSource::default();
    let mut de = serde_json::Deserializer::from_str(&config);
    let config: Config = serde_vars::deserialize(&mut de, &mut source)?;

    println!("{config:#?}");

    Ok(())
}

Github 仓库:https://github.com/Dav1dde/serde-vars

--

From 日报小组 Yuan YQ

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页