About vcpkg registries

vcpkg registries are collections of vcpkg ports usually gathered into Git repositories in order to extend the base vcpkg registry with custom ports for new packages and libraries.

This structure allows Rat-vcpkg to be used in vcpkg manifest mode with fine-grain versioning if needed.

myregistry/                 ← Registry repository (e.g Rat-vcpkg)
├── ports/                  ← Ports directory
│   ├── port-1/             ← A port
│   │   ├──portfile.cmake   ← Portfile
│   │   ├──vcpkg.json       ← Port metadata
│   │   ├──...              ← Other files for port
│   ├── ...                 ← Other ports
├── versions/               ← Port versions directory
│   ├── p-/                 ← Prefix
│   │   ├──port-1.json      ← Port version file
│   ├── baseline.json       ← Baseline versions file
├── ...

Maintain

Registries can require meticulous versioning and maintainement when it comes to updating ports or baselines (and this Rat-vcpkg is not perfect in that sense).

However some people are quite good at this, namely luncliff’s vcpkg-registry repository. Following these guidelines to update ports enables cleaner workflows.

Here are some useful guides:

It is recommended to have a look at their work.