{"id":13803494,"url":"https://github.com/dlang/dub","last_synced_at":"2026-02-10T21:32:25.845Z","repository":{"id":5290184,"uuid":"6470655","full_name":"dlang/dub","owner":"dlang","description":"Package and build management system for D","archived":false,"fork":false,"pushed_at":"2026-01-13T14:08:44.000Z","size":7994,"stargazers_count":716,"open_issues_count":528,"forks_count":238,"subscribers_count":59,"default_branch":"master","last_synced_at":"2026-01-13T21:09:25.300Z","etag":null,"topics":["d","dub","package-manager"],"latest_commit_sha":null,"homepage":null,"language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dlang.png","metadata":{"files":{"readme":"README.md","changelog":"changelog/README.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"dlang","open_collective":"dlang","custom":"https://dlang.org/foundation/donate.html"}},"created_at":"2012-10-31T08:10:47.000Z","updated_at":"2026-01-08T17:31:52.000Z","dependencies_parsed_at":"2023-01-17T00:01:04.920Z","dependency_job_id":"26a1978c-98cf-4ed4-b286-e3c856ef75a7","html_url":"https://github.com/dlang/dub","commit_stats":{"total_commits":2820,"total_committers":170,"mean_commits":16.58823529411765,"dds":0.5535460992907801,"last_synced_commit":"6080cc5497de5871c6081ab45e66f578e8e3fc74"},"previous_names":["rejectedsoftware/dub","d-programming-language/dub"],"tags_count":247,"template":false,"template_full_name":null,"purl":"pkg:github/dlang/dub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang%2Fdub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang%2Fdub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang%2Fdub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang%2Fdub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dlang","download_url":"https://codeload.github.com/dlang/dub/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlang%2Fdub/sbom","scorecard":{"id":346967,"data":{"date":"2025-08-11","repo":{"name":"github.com/dlang/dub","commit":"0030b9af02481fb518419bb4e13dd18731a9fd4f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5,"checks":[{"name":"Maintained","score":10,"reason":"24 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/alpine.yml:1","Warn: no topLevel permission defined: .github/workflows/main.yml:1","Warn: no topLevel permission defined: .github/workflows/pr_info_untrusted.yml:1","Warn: no topLevel permission defined: .github/workflows/release.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":"Binary-Artifacts","score":7,"reason":"binaries present in source code","details":["Warn: binary detected: bin/libcurl.dll:1","Warn: binary detected: bin/libeay32.dll:1","Warn: binary detected: bin/ssleay32.dll:1"],"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":"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: 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":"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/alpine.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/alpine.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:148: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr_info_intro.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/pr_info_intro.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr_info_post.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/pr_info_post.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr_info_post.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/pr_info_post.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr_info_untrusted.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/pr_info_untrusted.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr_info_untrusted.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/pr_info_untrusted.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr_info_untrusted.yml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/pr_info_untrusted.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:91: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/dlang/dub/release.yml/master?enable=pin","Warn: containerImage not pinned by hash: docker/Dockerfile.alpine:1","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   8 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage 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":"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":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.40.0 not signed: https://api.github.com/repos/dlang/dub/releases/211875194","Warn: release artifact v1.38.1 not signed: https://api.github.com/repos/dlang/dub/releases/163788601","Warn: release artifact v1.38.0 not signed: https://api.github.com/repos/dlang/dub/releases/158580672","Warn: release artifact v1.37.0 not signed: https://api.github.com/repos/dlang/dub/releases/149445076","Warn: release artifact v1.40.0 does not have provenance: https://api.github.com/repos/dlang/dub/releases/211875194","Warn: release artifact v1.38.1 does not have provenance: https://api.github.com/repos/dlang/dub/releases/163788601","Warn: release artifact v1.38.0 does not have provenance: https://api.github.com/repos/dlang/dub/releases/158580672","Warn: release artifact v1.37.0 does not have provenance: https://api.github.com/repos/dlang/dub/releases/149445076"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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"}}]},"last_synced_at":"2025-08-18T07:17:15.181Z","repository_id":5290184,"created_at":"2025-08-18T07:17:15.181Z","updated_at":"2025-08-18T07:17:15.181Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29317956,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["d","dub","package-manager"],"created_at":"2024-08-04T01:00:33.851Z","updated_at":"2026-02-10T21:32:25.818Z","avatar_url":"https://github.com/dlang.png","language":"D","funding_links":["https://github.com/sponsors/dlang","https://opencollective.com/dlang","https://dlang.org/foundation/donate.html"],"categories":["Build Tools"],"sub_categories":["Bare metal / kernel development"],"readme":"# dub package manager\n\nPackage and build manager for [D](http://dlang.org/) applications and libraries.\n\nThere is a central [package registry](https://github.com/dlang/dub-registry/) located at \u003chttp://code.dlang.org\u003e.\n\n[![GitHub tag](https://img.shields.io/github/tag/dlang/dub.svg?maxAge=86400)](#) [![Coverage Status](https://coveralls.io/repos/dlang/dub/badge.svg)](https://coveralls.io/r/dlang/dub)\n[![Buildkite](https://badge.buildkite.com/c54d71c42284a042b9d578e28e093dff35f20cc8528319b1b6.svg?branch=master)](https://buildkite.com/dlang/dub)\n\n## Introduction\n\nDUB emerged as a more general replacement for [vibe.d's](http://vibed.org/) package manager. It does not imply a dependency to vibe.d for packages and was extended to not only directly build projects, but also to generate project files (currently [VisualD](https://github.com/rainers/visuald)).\n[Mono-D](http://mono-d.alexanderbothe.com/) also supports the use of dub.json (dub's package description) as the project file.\n\nThe project's philosophy is to keep things as simple as possible. All that is needed to make a project a dub package is to write a short [dub.json](http://code.dlang.org/publish) file and put the source code into a `source` subfolder. It *can* then be registered on the public [package registry](http://code.dlang.org) to be made available for everyone. Any dependencies specified in `dub.json` are automatically downloaded and made available to the project during the build process.\n\n## Key features\n\n - Simple package and build description not getting in your way\n - Integrated with Git, avoiding maintenance tasks such as incrementing version numbers or uploading new project releases\n - Generates VisualD project/solution files, integrated into MonoD\n - Support for DMD, GDC and LDC (common DMD flags are translated automatically)\n - Supports development workflows by optionally using local directories as a package source\n\n## Future direction\n\nTo make things as flexible as they need to be for certain projects, it is planned to gradually add more options to the [package file format](http://code.dlang.org/package-format) and eventually to add the possibility to specify an external build tool along with the path of it's output files. The idea is that DUB provides a convenient build management that suffices for 99% of projects, but is also usable as a bare package manager that doesn't get in your way if needed.\n\n## Installation\n\nDUB comes [precompiled](http://code.dlang.org/download) for Windows, OS X and Linux. It needs to have libcurl with SSL support installed (except on Windows).\n\nThe `dub` executable then just needs to be accessible from `PATH` and can be invoked from the root folder of any DUB enabled project to build and run it.\n\nIf you want to build for yourself, just install a D compiler such as [DMD](http://dlang.org/download.html) and libcurl development headers and run `./build.d`.\n\n### Arch Linux\n\nМихаил Страшун (Dicebot) maintains a dub package of the latest release in `Community`, for [x86_64](https://www.archlinux.org/packages/community/x86_64/dub/) and [i686](https://www.archlinux.org/packages/community/i686/dub/).\nMoritz Maxeiner has created a PKGBUILD file for GIT master: \u003chttps://aur.archlinux.org/packages/dub-git/\u003e\n\n### Debian/Ubuntu Linux\n\nJordi Sayol maintains a DEB package as part of his [D APT repository](http://d-apt.sourceforge.net). Run `sudo apt-get install dub` to install.\n\n### OS X\n\nChris Molozian has added DUB to [Homebrew](http://mxcl.github.io/homebrew/). Use `brew install dub` to install the stable version, optionally adding `--HEAD`/`--devel` to install the latest git master or development release respectively.\n\nThere is also a [MacPorts](https://www.macports.org/) package available. Type `sudo port install dub` to install the latest stable version.\n\n### Windows\n\nDaniel Jost maintains a dub package on [chocolatey](https://chocolatey.org/packages/dub). Use `cinst dub` or `cinst dub -version #.#.#` to install stable or a custom version respectively.\n\n## Alpine Linux\n\nMathias (@Geod24) Lang maintains the Alpine Linux packages.\nIt is currently part of 'edge' and can be installed through `apk --no-cache add -X http://dl-cdn.alpinelinux.org/alpine/edge/testing dub`.\n\n## FreeBSD\n\nThe port for DUB resides in [devel/dub](freshports.org/devel/dub). The compiled package can be installed with `pkg install dub`.\n\n## OpenBSD\n\nBrian Callahan (bcallah@) maintains the OpenBSD package. Use `pkg_add dub` to install it.\n\n## Using DUB as a library\n\nThe [DUB package of DUB](http://code.dlang.org/packages/dub) can be used as a library to load or manipulate packages, or to resemble any functionality of the command line tool. The former task can be achieved by using the [Package class](https://github.com/dlang/dub/blob/master/source/dub/package_.d#L40). For examples on how to replicate the command line functionality, see [commandline.d](https://github.com/dlang/dub/blob/master/source/dub/commandline.d).\n\n## Minimal D compiler required to build DUB\n\nIn general it is always recommended to build DUB with the latest version of your D compiler.\nHowever, currently [2.076](https://dlang.org/changelog/2.076.0.html) is required to build DUB from source.\n\n# Contributing\n\nNew contributers are always welcome, there's plenty to work on! For an easy start, take a look at issues marked [`bootcamp`](https://github.com/dlang/dub/labels/bootcamp)\nThe contributing guidelines can be found [here](https://github.com/dlang/dub/blob/master/CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlang%2Fdub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdlang%2Fdub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlang%2Fdub/lists"}