File: ARCHITECTURE.md

package info (click to toggle)
dub 1.16.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 5,168 kB
  • sloc: sh: 1,577; xml: 37; makefile: 17; ansic: 11
file content (26 lines) | stat: -rw-r--r-- 1,310 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
## Architecture

![architecture](architecture.png)

## Terminology

<dl>
    <dt>Package</dt>
    <dd>A locally available version of a dub package, consisting of sources, binaries, and described by it's dub.sdl/json file.</dd>
    <dt>PackageSupplier</dt>
    <dd>A source to search and fetch package versions (zip bundles) from.</dd>
    <dt>PackageManager</dt>
    <dd>Responsible to manage packages (fetched or add-local packages), and overrides.</dd>
    <dt>PackageRecipe</dt>
    <dd>Abstract description of package sources, targets, configurations, and build settings.</dd>
    <dt>Generator</dt>
    <dd>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.</dt>
    <dt>PackageDependency</dt>
    <dd>Unresolved, abstract specification of a dependency, e.g. <code>dependency "vibe-d" version="~>0.8.1"</code>.</dd>
    <dt>DependencyResolver</dt>
    <dd>Algorithm to resolve package dependencies to specific package versions (dub.selections.json), searching available package versions in package suppliers.</dd>
    <dt>Target</dt>
    <dd>A build output like a static library or executable.</dd>
    <dt>BuildCache</dt>
    <dd>Caches targets for a specific build id.</dd>
</dl>