【Rust日报】2022-07-01 - fetch_data 使用实例

本文介绍了Rust库fetch_data的使用,它能安全地下载和验证本地文件,受到Python的Pooch库启发,支持异步运行时。文章提供了创建registry.txt和使用FetchData下载文件的方法,并提到了Rust China 2021~2022大会的最新动态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fetch_data 使用实例

Fetch-Data 库可以快速检查本地数据目录,然后下载所需文件。它总是通过哈希验证本地文件和下载的文件。它可以轻松下载大小样本文件。例如,这里我们从 GitHub 下载一个基因组学文件(如果尚未下载)。然后我们打印现在本地文件的大小。

use fetch_data::sample_file;let path = sample_file("small.fam")?;println!("{}", std::fs::metadata(path)?.len()); // Prints 85

它有如下特征

  • 线程安全——允许它与 Rust 的多线程测试框架一起使用。

  • 受到 Python 流行的Pooch和我们的 PySnpTools文件缓存模块的启发。

  • 使用异步运行时例如 Tokio(使用 ureq 通过阻塞 I/O 下载文件)。

推荐使用方法:

  • 创建一个registry.txt包含以空格分隔的文件列表及其哈希值的文件。

  • 创建一个 FetchData 读取 registry.txt 文件的全局静态实例。赋予它:1、文件 URL 根目录;2、一个环境变量,告诉存储文件的本地数据目录 3、qualifier, organization, and application 用于在未设置环境变量时创建本地数据目录。有关详细信息,请参阅 crate ProjectsDir。

  • 如下所示,定义一个公共 sample_file 函数,该函数接受一个文件名并返回一个 Result 包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值