Skip to content

Latest commit

 

History

History
26 lines (23 loc) · 1.28 KB

ARCHITECTURE.md

File metadata and controls

26 lines (23 loc) · 1.28 KB

Architecture

architecture

Terminology

Package
A locally available version of a dub package, consisting of sources, binaries, and described by it's dub.sdl/json file.
PackageSupplier
A source to search and fetch package versions (zip bundles) from.
PackageManager
Responsible to manage packages (fetched or add-local packages), and overrides.
PackageRecipe
Abstract description of package sources, targets, configurations, and build settings.
Generator
Responsible for generating a build recipe (e.g. CMakeLists.txt, VS .sln) for a package, config, and build type. Direct builds (dmd, rdmd) are also implemented as generators.
PackageDependency
Unresolved, abstract specification of a dependency, e.g. dependency "vibe-d" version="~>0.8.1".
DependencyResolver
Algorithm to resolve package dependencies to specific package versions (dub.selections.json), searching available package versions in package suppliers.
Target
A build output like a static library or executable.
BuildCache
Caches targets for a specific build id.