#io #dump #crates-io #download #concatenate #downloaded

程序 db-dump-concat

用于连接crates.io数据库导出的工具

5 个版本

0.1.3 2024年2月4日
0.1.2 2024年1月2日
0.1.1 2022年9月28日
0.1.0 2022年7月6日
0.0.0 2022年7月6日

数据库接口 中排名 592

Download history 25/week @ 2024-03-11 16/week @ 2024-03-18 7/week @ 2024-03-25 34/week @ 2024-04-01 22/week @ 2024-04-08 10/week @ 2024-04-15 23/week @ 2024-04-22 14/week @ 2024-04-29 12/week @ 2024-05-06 13/week @ 2024-05-13 23/week @ 2024-05-20 16/week @ 2024-05-27 25/week @ 2024-06-03 23/week @ 2024-06-10 22/week @ 2024-06-17 22/week @ 2024-06-24

每月下载量 94

MIT/Apache

11KB
214

crates.io数据库导出

github crates.io docs.rs build status

用于针对crates.io数据库导出的脚本分析的库。

这些数据库导出包含crates.io API公开的所有信息,打包成单个下载。每天更新一次导出。最新导出可在 https://static.crates.io/db-dump.tar.gz 获取。


示例

本仓库的 examples/ 目录包含几个可运行的示例分析。

total-downloads计算crates.io上所有crate的总下载量的时间序列
crate-downloads计算特定crate的下载量的时间序列
top-crates计算最直接依赖的几个crate
user-dependencies计算指定用户至少依赖一个crate的crate.io的百分比
user-downloads计算归因于单个指定用户crate的crate.io下载量的时间序列

一旦下载了最新的数据库导出,就可以使用Cargo运行这些示例之一

$ wget https://static.crates.io/db-dump.tar.gz
$ cargo run --release --example total-downloads

以下是最基本的示例 total-downloads 的实现和结果表的图表。它显示了crates.io下载率每9个月翻倍,或等效于每2.5年翻10倍!

use chrono::Utc;
use db_dump::Date;
use std::collections::BTreeMap as Map;

fn main() -> db_dump::Result<()> {
    let mut downloads = Map::<Date<Utc>, u64>::new();
    db_dump::Loader::new()
        .version_downloads(|row| {
            *downloads.entry(row.date).or_default() += row.downloads;
        })
        .load("./db-dump.tar.gz")?;

    for (date, count) in downloads {
        println!("{},{}", date, count);
    }

    Ok(())
}
Crates.io downloads per day (log scale)

以下是 user-downloads 示例的图表

Fraction of crates.io downloads that are dtolnay's crates

许可协议

根据您的选择,受Apache License, Version 2.0MIT许可协议 的许可。
除非您明确表示,否则任何有意提交以包含在本crate中并由您定义的贡献,根据Apache-2.0许可协议,将双重许可如上所述,不附加任何额外条款或条件。

依赖项

~6–16MB
~193K SLoC