What’s New in vcpkg (May 2024): Dedicated Pages for Each Package on vcpkg.io

Augustin Popa

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.

A screenshot of a computer Description automatically generated

Each port page contains the following elements:

  1. The name of the port.
  2. The most recently available version.
  3. A description of the port.
  4. The license for the port.
  5. The last updated date for the port.
  6. 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.
  7. A link to documentation for the port, if available.
  8. A link to the homepage for the port, if available.
  9. Installation instructions for both classic and manifest mode.
  10. Four tabs with additional information:
    1. Dependencies: Lists the port’s dependencies.
    2. Features: Lists the port’s optional features.
    3. Versions: Lists all available versions of the port in the vcpkg registry.
    4. Port Content: Lists all the files that comprise the port.

A view of the Features tab for openssl:

A screenshot of a computer Description automatically generated

A view of the Versions tab for openssl:

A screenshot of a computer Description automatically generated

A view of the Port Content tab for openssl:

A screenshot of a computer Description automatically generated

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.

1 comment

Leave a comment

  • Christoph Hausner 2

    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 on GitHub

    My other pain point with the website in the past was that it seemed to get updated only irregularly and some ports would be available but not shown on the website. Not sure if this is still an issue but it was for me in the past when I looked for newer ports and couldn’t find them.

Feedback usabilla icon