# carbonengine/vcpkg-registry architecture

> Architecture diagram of the GitHub repository carbonengine/vcpkg-registry, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/carbonengine/vcpkg-registry
- Repository: https://github.com/carbonengine/vcpkg-registry

## Overview

This is CCP Games’ supplemental vcpkg registry for Carbon development. A developer configures vcpkg with this registry and the supplied target configurations; vcpkg uses the port and version data to resolve packages for supported platforms. The registry covers Carbon-specific components and third-party dependencies. The README documents the registry and custom triplet/toolchain use; sampled source does not establish detailed package-build or resolution internals, so those links are kept at the documented level.

Main entry points: [`ports`](https://github.com/carbonengine/vcpkg-registry/tree/main/ports) (Carbon engine modules), [`versions`](https://github.com/carbonengine/vcpkg-registry/tree/main/versions) (Version database), [`ports/carbon-core`](https://github.com/carbonengine/vcpkg-registry/tree/main/ports/carbon-core) (Carbon core), [`triplets`](https://github.com/carbonengine/vcpkg-registry/tree/main/triplets) (vcpkg triplets)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_registry["Registry data"]
  node_portdata["Port definitions"]
  node_versions["Version database"]
end

subgraph group_carbon["Carbon packages"]
  node_carboncore["Carbon core"]
  node_carbonsdk["Carbon SDK"]
  node_carbonengine["Carbon engine modules"]
  node_carbontools["Carbon tools"]
end

subgraph group_dependencies["Other packages"]
  node_graphics["Graphics integrations"]
  node_media["Media libraries"]
  node_generaldeps["General dependencies"]
end

subgraph group_targets["Target configurations"]
  node_triplets["vcpkg triplets"]
  node_toolchains["Carbon toolchains"]
end

node_developer(("Carbon developer"))
node_vcpkg["vcpkg client"]
node_microsoft[("Microsoft registry")]

node_developer -->|"configures"| node_vcpkg
node_vcpkg -->|"reads ports"| node_portdata
node_vcpkg -->|"reads versions"| node_versions
node_vcpkg -.->|"also uses"| node_microsoft
node_developer -->|"selects target"| node_triplets
node_developer -->|"configures build"| node_toolchains
node_carbonengine --> node_carboncore

click node_portdata "https://github.com/carbonengine/vcpkg-registry/tree/main/ports"
click node_versions "https://github.com/carbonengine/vcpkg-registry/tree/main/versions"
click node_carboncore "https://github.com/carbonengine/vcpkg-registry/tree/main/ports/carbon-core"
click node_carbonsdk "https://github.com/carbonengine/vcpkg-registry/tree/main/ports/carbon"
click node_carbonengine "https://github.com/carbonengine/vcpkg-registry/tree/main/ports"
click node_carbontools "https://github.com/carbonengine/vcpkg-registry/tree/main/ports"
click node_graphics "https://github.com/carbonengine/vcpkg-registry/tree/main/ports/amd-fidelityfx"
click node_media "https://github.com/carbonengine/vcpkg-registry/tree/main/ports/libvpx"
click node_generaldeps "https://github.com/carbonengine/vcpkg-registry/tree/main/ports/openssl"
click node_triplets "https://github.com/carbonengine/vcpkg-registry/tree/main/triplets"
click node_toolchains "https://github.com/carbonengine/vcpkg-registry/tree/main/toolchains"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_portdata,node_versions,node_vcpkg toneBlue
class node_carboncore,node_carbonsdk,node_carbonengine,node_carbontools,node_microsoft toneAmber
class node_graphics,node_media,node_generaldeps toneMint
class node_triplets,node_toolchains toneRose
class node_developer toneIndigo
```

## Components

### Registry data

- [Port definitions](https://github.com/carbonengine/vcpkg-registry/tree/main/ports): `ports`
- [Version database](https://github.com/carbonengine/vcpkg-registry/tree/main/versions): `versions`

### Carbon packages

- [Carbon core](https://github.com/carbonengine/vcpkg-registry/tree/main/ports/carbon-core): `ports/carbon-core`
- [Carbon SDK](https://github.com/carbonengine/vcpkg-registry/tree/main/ports/carbon): `ports/carbon`
- [Carbon engine modules](https://github.com/carbonengine/vcpkg-registry/tree/main/ports): `ports`
- [Carbon tools](https://github.com/carbonengine/vcpkg-registry/tree/main/ports): `ports`

### Other packages

- [Graphics integrations](https://github.com/carbonengine/vcpkg-registry/tree/main/ports/amd-fidelityfx): `ports/amd-fidelityfx`
- [Media libraries](https://github.com/carbonengine/vcpkg-registry/tree/main/ports/libvpx): `ports/libvpx`
- [General dependencies](https://github.com/carbonengine/vcpkg-registry/tree/main/ports/openssl): `ports/openssl`

### Target configurations

- [vcpkg triplets](https://github.com/carbonengine/vcpkg-registry/tree/main/triplets): `triplets`
- [Carbon toolchains](https://github.com/carbonengine/vcpkg-registry/tree/main/toolchains): `toolchains`

### Other components

- **Carbon developer**
- **vcpkg client**
- **Microsoft registry**

## Connections

- Carbon developer → vcpkg client: configures
- vcpkg client → Port definitions: reads ports
- vcpkg client → Version database: reads versions
- vcpkg client → Microsoft registry: also uses
- Carbon developer → vcpkg triplets: selects target
- Carbon developer → Carbon toolchains: configures build
- Carbon engine modules → Carbon core
