{"id":21909204,"url":"https://github.com/somehowchris/rust-crates-index-metrics","last_synced_at":"2025-08-20T00:35:23.467Z","repository":{"id":37020567,"uuid":"486966852","full_name":"somehowchris/rust-crates-index-metrics","owner":"somehowchris","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-06T23:50:16.000Z","size":265,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T00:25:26.307Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/somehowchris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-29T12:38:03.000Z","updated_at":"2024-04-30T22:22:27.000Z","dependencies_parsed_at":"2024-02-20T11:27:26.322Z","dependency_job_id":"4626ec56-7c76-41dc-a090-a09bd5da22a8","html_url":"https://github.com/somehowchris/rust-crates-index-metrics","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/somehowchris/rust-crates-index-metrics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somehowchris%2Frust-crates-index-metrics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somehowchris%2Frust-crates-index-metrics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somehowchris%2Frust-crates-index-metrics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somehowchris%2Frust-crates-index-metrics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/somehowchris","download_url":"https://codeload.github.com/somehowchris/rust-crates-index-metrics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somehowchris%2Frust-crates-index-metrics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271246849,"owners_count":24725900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-28T17:15:58.024Z","updated_at":"2025-08-20T00:35:23.419Z","avatar_url":"https://github.com/somehowchris.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# crates index metrics\n\nThis project is intendet to collect DX as well as Ops data for crates on an index (doesn't have to be `crates.io`).\n\u003e It's intention is to monitor an index for ease of use, security aspects, changes in dependencies and much more. Not using artificial tooling but rather gathering data based on real tools and applications.\n\n## Status\n\nThis is currently in planning, a small poc based on collecting data about `cargo-binstall` is currently available inside this repository.\n\nWhat it includes:\n - Creating a map of all crates and versions of an index\n - Downloading the crates file and parsing it's `Cargo.toml`\n - Using streaming and semaphores to reduce the amount needed for compute, ram and to adapt for greater local ressources\n - Gather raw data and collect key metrics based on this. \u003e This currently means, gathering data and calulating the amount and names of crates supporting `cargo-binstall`\n\n## The greater plan\n\nWhat currenty is wrong:\n - As of right now, all data is downloaded as you go, this means reevaulating means a new download =\u003e files should be cachable\n - Errors are just spit out the console, there is no gathering about the process or plain supervision\n - Everything (except downloading the crates file) is a one shot operation\n\nWhat it should provide in structure:\n- It should adhere the follwing tree strucutring\n    - Crate -\u003e the crates name\n        - Version -\u003e the crates version\n            - Version checksum -\u003e the crates checksum\n                - Feature -\u003e hashes of `Vec\u003cString\u003e` as its storted by `asc alph, asc len`\n                    - Target -\u003e the platform targetet\n                        - Package -\u003e bins or libs of crate\n\nWhat should trigger a new check:\n - A new crate\n - A new check\n - A new target\n - An updated checksum of a version\n - Updated dependencies -\u003e From a lock file perspective, not one of a version specification in `Cargo.toml`\n\nWhat should be checked:\n - tools\n    - cargo udeps\n    - cargo geiger\n    - cargo tarpaulin\n    - cargo build\n    - cargo audit\n    - cargo-bloat\n  - questions:\n   - Does it just build?\n   - How long does it build?\n   - How big are builds?\n   - How many dependencies does it have?\n   - How many features does it have?\n   - Does it have any runtime dependencies?\n   - Is its source code public? And still accessible\n   - Are all dependencies up to date?\n   - Are some dependencies using yanked crate versions?\n   - Does it support cargo-binstall?\n   - Is the maintainers email address valid?\n   - How many binaries does it have?\n   - does it use openssl?\n   - On which host is the source code?\n   - Does the cli use clap?\n   - Is it wasm capable?\n   - How much of its code is unsafe? Is unsafe code forbidden\n   - How many test cases does it have?\n   - What benching framework does it use?\n   - Do all feature combinations work?\n   - Does it use `rust 2021`\n   - Does it use `dependabot` or `renovate`?\n   - Is there more than 1 maintainer?\n   - Are dependency versions clearly defined?\n   - Does it support `no_std`?\n   - What features do use up the most binary size?\n   - Are binaries optimized?\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomehowchris%2Frust-crates-index-metrics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsomehowchris%2Frust-crates-index-metrics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomehowchris%2Frust-crates-index-metrics/lists"}