遇见数据集

std-replacement-data

收藏
github2026-06-16 更新2026-06-17 收录
官方服务:

资源简介:

一个精心整理的Rust crate数据集,这些crate的功能现在已在标准库中提供。crates.io读取它以指出当`std`已经覆盖了crate提供的功能时,以及在哪里找到等效的API。每个条目都是关于`std`的可检查事实陈述,而不是对竞争crate的意见。

A curated dataset of Rust crates whose functionality is now available in the Rust standard library. Crates.io utilizes this dataset to identify instances where the `std` library already covers the functionality provided by a given crate, as well as the locations of equivalent APIs within the standard library. Each entry comprises verifiable factual statements about the `std` library, rather than subjective opinions on competing crates.

创建时间:
2026-06-15
原始信息汇总

数据集概述

数据集名称

std-replacement-data

数据集目的

该数据集是一个经过筛选的 Rust 包(crate)集合,这些包的功能现已包含在 Rust 标准库中。crates.io 使用该数据集来提示用户:标准库已经提供了某个包所实现的功能,并指引用户找到对应的 API。

数据内容与格式

  • 每个包对应一个独立的 TOML 文件,存放在 data/<crate>.toml 中。
  • 每个文件包含两个字段:
    • description:Markdown 格式的解释,说明替换方式。必须引用稳定的标准库 API 以及稳定该 API 的 Rust 版本。
    • url:指向文档或发布说明的链接,作为“了解更多”链接展示。
  • 所有 TOML 文件通过 build.py 打包为一个 JSON 文件 build/all.json,以包名为键。

数据消费方式

  • 构建后的 JSON 文件发布在 GitHub Pages: https://rust-lang.github.io/std-replacement-data/all.json
  • 本地构建需要 Python 3.11 及以上版本(依赖 tomllib),命令为: python3 build.py

数据维护与贡献

  • crates.io 团队维护,欢迎贡献新条目。
  • 贡献标准与添加方式详见 CONTRIBUTING.md 文件。
  • 数据集旨在成为稳定数据源,但在稳定之前,内容和格式可能随时变化。

数据来源

数据最初内嵌于 crates.io,后迁出以便其他工具也能使用。原始实现见 rust-lang/crates.io#13855

许可协议

  • Apache License, Version 2.0
  • MIT license
搜集汇总
数据集介绍
std-replacement-data 数据集图片
构建方式
在Rust生态系统中,随着标准库(std)的持续演进,诸多此前依赖第三方crate的功能已被原生支持。为帮助开发者清晰识别这一转变,std-replacement-data数据集应运而生。其构建方式以每个第三方crate为独立单元,在data/<crate>.toml文件中记录一条结构化条目,包含Markdown格式的替代说明(描述对应标准库API及其稳定版本)以及一个指向官方文档的URL链接。所有条目通过build.py脚本合并为单一JSON文件(build/all.json),并以crate名称为键进行组织,最终发布至GitHub Pages供公开访问。
特点
该数据集的核心特质在于其客观性与事实导向——每一条目均为关于标准库功能的可验证声明,严格避免对第三方crate的主观评价。数据由crates.io团队维护,旨在成为稳定的数据源,但当前仍可能经历格式与内容的演进。此外,数据集鼓励社区贡献,通过CONTRIBUTING.md明确界定了何为有效的标准库替代crate及添加方式,确保了扩展的规范性与质量。
使用方法
数据集的消费方式极为简洁。用户可直接访问GitHub Pages上发布的all.json文件(https://rust-lang.github.io/std-replacement-data/all.json),以获取完整的标准库替代crate清单。若需本地构建,可在配置Python 3.11+环境后运行python3 build.py命令,自动将分散的TOML文件整合为统一JSON。该数据集不仅服务于crates.io自身,亦欢迎其他工具集成使用,实现跨平台的标准化提示功能。
背景与挑战
背景概述
随着Rust编程语言的不断演进,其标准库(std)的功能日益丰富,许多原本依赖第三方crate实现的特性已被原生支持。为帮助开发者识别这些冗余依赖并迁移至标准库,crates.io团队于近期创建了std-replacement-data数据集。该数据集由crates.io团队维护,旨在系统地记录那些已被Rust标准库功能覆盖的第三方crate,并标注对应的标准库API及稳定版本。数据集每项条目均为基于事实的客观陈述,杜绝主观评价。通过结构化TOML文件存储并发布为统一JSON格式,该数据集不仅服务于crates.io的智能提示功能,更向社区工具开放消费接口,为Rust生态的标准化与依赖精简提供了权威参考。其创建标志着Rust生态向着更高集成度与高效开发体验迈出了坚实一步。
当前挑战
该数据集面临的核心挑战在于领域问题本身:Rust标准库持续迭代,新版本不断加入对常见第三方crate功能的覆盖,但开发者往往难以追踪这些变动,导致大量本可移除的冗余依赖长期存活于项目中,增加编译时间与维护负担。数据集的构建同样充满挑战:首先,每项条目需要精准核实标准库API的稳定性与功能等价性,并标注具体的稳定版本,这对维护者提出了极高的技术要求。其次,数据集需保持动态更新以同步标准库的发展,但Rust社区众多crate的涌现与标准库版本的快速演进使得人工维护成本高昂。此外,数据集格式仍处于不稳定阶段,其公开接口可能随标准库变更而调整,如何在不破坏下游工具兼容性的前提下保证数据准确性,仍是亟待解决的问题。
常用场景
经典使用场景
在Rust生态系统中,随着标准库的不断演进,许多原本需要第三方crate提供的功能逐渐被原生API所覆盖。std-replacement-data数据集应运而生,它精心收录了那些功能已可被标准库取代的Rust crate,并详细标注了对应的标准库API及其稳定版本。该数据集最经典的使用场景是作为crates.io平台的智能提示引擎,当开发者搜索或浏览某个crate时,平台会借助此数据即时展示“此功能标准库已支持”的启发式信息,引导用户直接采用标准库方案,从而减少不必要的第三方依赖。
解决学术问题
该数据集精准回应了Rust社区中一个长期存在的学术研究问题:如何系统性地追踪和量化标准库功能对第三方crate的替代趋势,并建立可验证的事实依据而非主观评判。通过提供结构化的事实陈述,它解决了依赖分析、生态演化及API迁移研究中缺乏可靠基准数据的困境。其意义在于,为研究Rust生态系统演进提供了标准化、可复用的数据源,使得开发者行为分析、库冗余度评估以及标准库覆盖范围测量等研究方向拥有了坚实的数据基础,进而推动了软件生态学领域的量化研究。
衍生相关工作
围绕std-replacement-data数据集,衍生出了若干富有影响力的相关工作。最直接的是其在crates.io平台上的原始实现(详见rust-lang/crates.io#13855号提案),该工作首次将启发式替代提示工程化并部署于生产环境。随后,社区工具如cargo-udeps和cargo-deny等开始探索如何整合此数据,以实现自动化冗余依赖检测。此外,该数据集启发了Rust标准库团队对API稳定性与覆盖率进行更系统的评估,推动了类似“标准库就绪度仪表盘”的研究项目。在学术界,该数据已被用作实证研究素材,分析标准库演进对第三方生态的扰动模式,为软件逆向迁移模式分析提供了可验证的案例库。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务