{"id":32135308,"url":"https://github.com/robzz/cargo-docset","last_synced_at":"2025-10-21T03:58:48.023Z","repository":{"id":50423778,"uuid":"202188676","full_name":"Robzz/cargo-docset","owner":"Robzz","description":"Cargo subcommand to generate a Dash/Zeal docset for your Rust packages.","archived":false,"fork":false,"pushed_at":"2023-11-18T02:22:48.000Z","size":168,"stargazers_count":110,"open_issues_count":9,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-28T10:45:03.002Z","etag":null,"topics":["dash","docset","rust","zeal"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Robzz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-13T17:00:13.000Z","updated_at":"2025-08-17T08:53:17.000Z","dependencies_parsed_at":"2022-08-03T00:31:19.584Z","dependency_job_id":null,"html_url":"https://github.com/Robzz/cargo-docset","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/Robzz/cargo-docset","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robzz%2Fcargo-docset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robzz%2Fcargo-docset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robzz%2Fcargo-docset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robzz%2Fcargo-docset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Robzz","download_url":"https://codeload.github.com/Robzz/cargo-docset/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robzz%2Fcargo-docset/sbom","scorecard":{"id":122025,"data":{"date":"2025-08-11","repo":{"name":"github.com/Robzz/cargo-docset","commit":"d00f564aa1a20e9c6d4649e0d2aee2e055107051"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":2,"reason":"Found 2/10 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rust.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/Robzz/cargo-docset/rust.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/rust.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: RUSTSEC-2021-0145 / GHSA-g98v-hv3f-hcfr","Warn: Project is vulnerable to: RUSTSEC-2024-0375","Warn: Project is vulnerable to: RUSTSEC-2024-0370"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T02:39:59.419Z","repository_id":50423778,"created_at":"2025-08-16T02:39:59.419Z","updated_at":"2025-08-16T02:39:59.419Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280200870,"owners_count":26289477,"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-10-21T02:00:06.614Z","response_time":58,"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":["dash","docset","rust","zeal"],"created_at":"2025-10-21T03:58:45.587Z","updated_at":"2025-10-21T03:58:48.016Z","avatar_url":"https://github.com/Robzz.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `cargo-docset` - Generate a Zeal/Dash docset for your Rust crate or workspace\n\n![Build status](https://github.com/Robzz/cargo-docset/actions/workflows/rust.yml/badge.svg?branch=master)\n[![Crate](https://img.shields.io/crates/v/cargo-docset.svg)](https://crates.io/crates/cargo-docset)\n\n`cargo-docset` is a tool allowing you to generate a [Dash](https://kapeli.com/dash)/[Zeal](https://zealdocs.org/)\ncompatible docset for your Rust packages and their dependencies.\n\n## Installation\n\n`cargo-docset` depends on the SQLite3 library. You can either install the SQLite3 library on your system (see\n[rusqlite's documentation](https://github.com/rusqlite/rusqlite#notes-on-building-rusqlite-and-libsqlite3-sys) for\nhelp), or build the version that is bundled in the `libsqlite3-sys` crate by turning on the `bundled-sqlite` feature\nflag when building `cargo-docset`.\n\nYou can install cargo docset with the usual cargo command: `cargo install cargo-docset`.\n\n## How to use\n\nJust run `cargo docset` in your crate's directory to generate the docset. It will be placed in the `target/docset`\ndirectory. cargo-docset generally supports the same options as `cargo doc`, with a few additional ones. For more\ninformation, run `cargo docset --help` or look below in this README.\n\nTo install your shiny new docset, copy it to your Zeal/Dash docset directory (available in the preferences, on Zeal at\nleast) and restart Zeal/Dash.\n\n### Examples\n\nSome more advanced examples:\n\n* Include documentation only for some of the documented package's dependencies: `cargo docset --no-deps --package\n  dependency1 --package dependency2 ...`\n* Generate a docset for nightly Rust from the properly initialized (e.g. `git clone --recurse-submodules ...`) official\n  Rust repository: `cargo +nightly docset --package std --package core --no-deps --docset-name \"Rust nightly $(git rev-parse --short HEAD)\" --docset-index std --platform-family rust-nightly`\n\n### `cargo docset --help`\n\n```\ncargo-docset-docset\nGenerate a docset. This is currently the only available command, and should remain the default one\nin the future if new ones are added\n\nUSAGE:\n    cargo-docset docset [OPTIONS]\n\nOPTIONS:\n        --all-features\n            Activate all available features\n\n        --bin \u003cBIN\u003e\n            Document only the specified binary\n\n        --bins\n            Document all binaries\n\n        --docset-index \u003cPACKAGE\u003e\n            Specify or override the package whose index will be used as the docset index page\n\n        --docset-name \u003cDOCSET_NAME\u003e\n            Specify or override the name of the docset, this is the display name used by your docset\n            browser\n\n        --document-private-items\n            Generate documentation for private items\n\n        --exclude \u003cSPEC\u003e\n            Exclude packages from being processed\n\n    -F, --features \u003cFEATURES\u003e\n            Space-separated list of features to activate\n\n    -h, --help\n            Print help information\n\n        --lib\n            Document only this package's library\n\n        --manifest-path \u003cPATH\u003e\n            Path to Cargo.toml\n\n        --no-clean\n            Do not clean the doc directory before generating the rustdoc\n\n        --no-default-features\n            Do not activate the `default` feature\n\n        --no-deps\n            Do not document dependencies\n\n    -p, --package \u003cSPEC\u003e\n            Package to process (see `cargo help pkgid`)\n\n        --platform-family \u003cPLATFORM_FAMILY\u003e\n            Specify or override the docset platform family, this is used as the keyword you can\n            specify in your docset browser search bar to search this specific docset)\n\n        --target \u003cTARGET\u003e\n            Build documentation for the specified target triple\n\n        --target-dir \u003cTARGET_DIR\u003e\n            Override the workspace target directory\n\n        --workspace\n            Process all packages in the workspace\n```\n\n## How it works\n\nCurrently, `cargo docset` runs `cargo` to generate the documentation, and then recursively walks the generated\ndirectory. The contents of every file is inferred from the file path, and cargo-docset then fills a SQLite database with\nthe gathered information. The details of docset generation are available [here](https://kapeli.com/docsets#dashDocset).\n\n`cargo-docset` does not (yet, at least) try to parse the generated documentation in any way, and therefore is limited in\nthe granularity of the index it can provide. In particular, the generated docset does not make use of the table of\ncontents feature.\n\nAlso, because `cargo-docset` walks through the whole `doc` directory, it must clear it before attempting to generate\nthe docset, in case there is some previously generated documentation that we don't want to pickup in the docset there.\nYou should probably not be storing anything of value in that directory anyway, but keep it in mind.\n\n## Contributing\n\nSee [here](./CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobzz%2Fcargo-docset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobzz%2Fcargo-docset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobzz%2Fcargo-docset/lists"}