DUB

What DUB is
DUB is the official package manager for the D programming language, providing configurable builds across Windows, macOS, and Linux. Its command-line interface creates projects, downloads programs and dependencies, compiles and runs projects, and executes tests. Projects describe metadata, dependencies, build options, source paths, and platform settings in either a dub.sdl or dub.json recipe file. DUB resolves, downloads, and builds required dependencies, records selected versions in dub.selections.json, and supports dependency resolution, lockfiles, offline installation, and local package directories. The DUB registry helps users discover packages and publish their own. DUB integrates with various IDEs and can generate configuration for third-party build systems and IDEs. Precompiled versions are available for Windows, OS X, and Linux, with compiler support listed for DMD, GDC, and LDC. It is distributed with major compiler packages or installed separately, including from source. DUB is free and open source and requires libcurl with SSL support except on Windows.
Who it suits
DUB suits D developers who need dependency management, configurable cross-platform builds, and command-line project tools. It also fits users working with supported IDEs or DMD, GDC, and LDC compilers.
What it does well
- Cross-platform Windows, macOS, and Linux support
- Resolves and builds dependencies as needed
- Lockfile and offline installation support
- Registry for discovering and publishing packages
- Runs project tests from the command line
What to know first
- Requires libcurl with SSL except on Windows
- Configuration requires dub.sdl or dub.json recipes
Verdict
DUB combines D dependency handling, project commands, testing, and configurable builds in one free, open-source tool. Its registry, compiler support, IDE integration, and offline features cover a range of D development workflows.
Facts from DUB's own pages
- Build configuration
- Recipe settings can specify build options, dependencies, source paths, and platform-specific settings. · dub.pm, 12 Oct 2026
- Builds
- DUB resolves, downloads, and builds project dependencies as needed when building a project. · dub.pm, 12 Oct 2026
- CLI tasks
- Its command-line interface downloads programs and dependencies, creates projects, compiles and runs projects, and tests them. · dub.pm, 11 Oct 2026
- Company details
- The opened DUB pages identify the software and documentation but do not state a maker headquarters or founding date. · dub.pm, 12 Oct 2026
- Compiler distribution
- DUB is distributed alongside major D compilers when their full packages are installed, and it can also be installed separately. · dub.pm, 11 Oct 2026
- Compiler support
- DUB is distributed alongside major D compilers when their full packages are installed. · dub.pm, 12 Oct 2026
- Dependency handling
- DUB resolves, downloads, and builds dependencies as needed, and records resolved versions in dub.selections.json. · dub.pm, 11 Oct 2026
- Dependency resolution
- Yes · dub.pm, 22 Sept 2026
- IDE and build system support
- DUB integrates with various IDEs and can generate configuration for third-party build systems and IDEs. · dub.pm, 11 Oct 2026
- IDE integration
- DUB is integrated in various IDEs and can generate configuration for third-party build systems and IDEs. · dub.pm, 12 Oct 2026
- Local package sources
- DUB supports using local directories as a package source for development workflows. · github.com, 11 Oct 2026
- Lockfile support
- Yes · dub.pm, 22 Sept 2026
- Offline installation
- Yes · dub.pm, 22 Sept 2026
- Package configuration
- A DUB project is configured with a recipe file named dub.sdl or dub.json. · dub.pm, 11 Oct 2026
- Package discovery
- The DUB registry lets users discover packages and publish their own. · dub.pm, 12 Oct 2026
- Package formats
- dub.json,dub.sdl · dub.pm, 22 Sept 2026
- Package registry
- The DUB registry lets users discover packages and publish their own. · dub.pm, 11 Oct 2026
- Project setup
- A DUB project uses a dub.sdl or dub.json recipe file to describe project metadata and dependencies. · dub.pm, 12 Oct 2026
- Purpose
- DUB is the official package manager for the D programming language and provides configurable cross-platform builds. · dub.pm, 12 Oct 2026
- Security dependency
- The repository says DUB requires libcurl with SSL support, except on Windows. · github.com, 11 Oct 2026
- Standalone installation
- DUB can also be installed separately from the compiler, including by building it from source. · dub.pm, 12 Oct 2026
- Supported operating systems
- The project repository says precompiled DUB versions are available for Windows, OS X, and Linux. · github.com, 11 Oct 2026
- Supported platforms
- Windows,macOS,Linux · dub.pm, 22 Sept 2026
- Testing
- The dub test command runs unit tests found in source paths using the unittest configuration by default. · dub.pm, 12 Oct 2026
Where DUB stands on Freedom251
- Package Managers#93 of 93