This blog post summarizes changes to the vcpkg package manager as part of the 2024.05.24 release as well as changes to vcpkg documentation throughout May. This month’s update also includes individual pages for each package on the vcpkg website as well as several new documentation articles.
Some stats for this period:
- There are now 2,434 total ports available in the vcpkg public registry. A port is a versioned recipe for building a package from source, such as a C or C++ library.
- 11 new ports were added to the open-source registry.
- 387 updates were made to existing ports. As always, we validate each change to a port by building all other ports that depend on or are depended by the library that is being updated for our 13 main triplets.
- 20 contributors submitted PRs, issues, or participated in discussions in the main repo.
- The main vcpkg repo has over 6,100 forks and 21,900 stars on GitHub.
There was no update this month to the vcpkg tool binary itself. However, we have made an important update to our website, vcpkg.io.
Individual pages for each port
Each one of the 2,434 ports available in the vcpkg open-source registry now has a dedicated page on vcpkg.io with more information about them. You can access these pages by using the search features accessible under Packages at the top right of the site. Below are some example screenshots of the openssl port. You can also review it for yourself at vcpkg.io/en/package/openssl.
Each port page contains the following elements:
- The name of the port.
- The most recently available version.
- A description of the port.
- The license for the port.
- The last updated date for the port.
- The “Supports” expression for the port which lists which triplets are explicitly supported or not supported. If blank, all triplets are assumed to be supported.
- A link to documentation for the port, if available.
- A link to the homepage for the port, if available.
- Installation instructions for both classic and manifest mode.
- Four tabs with additional information:
- Dependencies: Lists the port’s dependencies.
- Features: Lists the port’s optional features.
- Versions: Lists all available versions of the port in the vcpkg registry.
- Port Content: Lists all the files that comprise the port.
A view of the Features tab for openssl:
A view of the Versions tab for openssl:
A view of the Port Content tab for openssl:
We hope these new pages make it easier for anyone interested in vcpkg to learn more about libraries they can install out of the box from the open-source registry. And we would love your feedback on how we can make our website better!
Documentation changes
- Separated previous binary caching article into separate concepts and reference articles. The concepts article is a good place to start if you are new to binary caching or want to learn best practices. The reference article lists all the interaction points of the feature and is useful when you are actually implementing or updating binary caching support for your libraries.
- Added Port policies reference article. Documents various ways to change and customize vcpkg’s behavior, such as post-build checks, and how certain ports are categorized based on their intended functionality.
- Added Continuous integration concepts article. Provides guidance for using vcpkg in continuous integration environments.
If you have any suggestions for our documentation, please submit an issue in our GitHub repo or see the box at the bottom of a particular article.
Total ports available for tested triplets
triplet | ports available |
x64-windows | 2,298 |
x86-windows | 2,208 |
x64-windows-static | 2,184 |
x64-windows-static-md | 2,216 |
arm64-windows | 1,873 |
x64-uwp | 1,267 |
arm64-uwp | 1,233 |
x64-linux | 2,256 |
x64-osx | 2,144 |
arm64-osx | 2,067 |
arm-neon-android | 1,565 |
x64-android | 1,620 |
arm64-android | 1,594 |
While vcpkg supports a much larger variety of target platforms and architectures (as community triplets), the list above is validated exhaustively to ensure updated ports don’t break other ports in the catalog.
Thank you to our contributors
vcpkg couldn’t be where it is today without contributions from our open-source community. Thank you for your continued support! The following people contributed to the vcpkg, vcpkg-tool, or vcpkg-docs repos in this release:
- dg0yt (18 commits)
- Neumann-A (7 commits)
- miyanyan (5 commits)
- AenBleidd (4 commits)
- alagoutte (3 commits)
- talregev (3 commits)
- Thomas1664 (3 commits)
- waywardmonkeys (2 commits)
- cenit (2 commits)
- RT2Code (2 commits)
- MehdiChinoune (1 commit)
- HappySeaFox (1 commit)
- RealTimeChris (1 commit)
- moritz-h (1 commit)
- danielaparker (1 commit)
- an-tao (1 commit)
- yurybura (1 commit)
- SchaichAlonso (1 commit)
- Osyotr (1 commit)
- coryan (1 commit)
Learn more
You can find the full 2024.05.24 release notes on GitHub for the main repo. Recent updates to the vcpkg tool can be viewed on the vcpkg-tool Releases page. To contribute to vcpkg documentation, visit the vcpkg-docs repo. If you’re new to vcpkg or curious about how a package manager can make your life easier as a C/C++ developer, check out the vcpkg website – vcpkg.io.
If you would like to contribute to vcpkg and its library catalog, or want to give us feedback on anything, check out our GitHub repo. Please report bugs or request updates to ports in our issue tracker, or join more general discussion in our discussion forum.
This is great news! I've always wondered why the vcpkg.io website contained so little useful information. Some more ideas for improvements:
- Show port usage information (what vcpkg install prints after installation)
- Make the tree of files that a port creates after installation browsable
- Show download counts
- For common software licenses, link to a webpage with more information about the license (e.g. https://choosealicense.com/licenses/)
- Make the listed versions link to the corresponding commit...