February 27th, 2025

What’s New in vcpkg (February 2025): Package installation performance, new tested triplet, and more

Augustin Popa
Senior Product Manager

This blog post summarizes changes to the vcpkg package manager as part of the 2025.02.14 registry release, 2025-02-11, 2025-01-29, 2025-01-24, and 2025-01-20 tool releases, as well as changes to vcpkg documentation throughout February. This release includes significant performance improvements when installing packages, a new tested triplet (x64-windows-release), an overhaul of how vcpkg handles some downloads and console output, and bug fixes. In terms of documentation, there are improvements to our maintainer guide, registries articles, and versioning articles, among others.

Some stats for this period:

  • There are now 2,558 total ports available in the vcpkg curated registry. A port is a versioned recipe for building a package from source, such as a C or C++ library.
  • 38 new ports were added to the curated registry.
  • 314 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.
  • 100 community contributors made commits.
  • The main vcpkg repo has over 6,600 forks and 24,000 stars on GitHub.

vcpkg changelog (2025.02.14 release)

The following notable changes were made in February:

  • Our community contributor, autoantwort, worked on a PR to improve package installation performance by optimizing some binary caching actions. The table below displays the change in our CI run times when building all ports for all tested triplets as a result of this improvement (PR: Microsoft/vcpkg-tool#908, thanks @autoantwort!).
Triplet Old Time (mins) New Time (mins) Time Saved (%)
x86-windows

1661

1530 8%
x64-windows 2009 1900 5%
x64-windows-static 1948 1550 20%
x64-windows-static-md 1878 1622 14%
x64-uwp 369 333 10%
arm64-windows 1145 1138 1%
arm64-windows-static-md 1197 1055 12%
arm64-uwp 355 333 6%
x64-osx 2522 2109 16%
arm64-osx 961 837 13%
x64-linux 1278 1003 22%
arm-neon-android 309 262 15%
x64-android 342 285 17%
arm64-android 346 290 16%
  • The x64-windows-release community triplet has been promoted to a tested triplet, which means it is now subject to our regular continuous integration runs to verify ongoing package compatibility. An entry has been added to the Total ports available for tested triplets section below and will continue to be included in future release blog posts (PR: Microsoft/vcpkg#43555).
  • Overhauled downloads handling and console output to fix many longstanding bugs and reduce confusion (PR: Microsoft/vcpkg-tool#1565). More specifically:
    • No longer print an error when an asset cache misses but the authoritative download succeeds.
    • Now always and consistently print output from x-script at the time that actually happens.
    • No longer output a message claiming that proxy settings might fix a hash mismatch problem.
    • Now output a message that proxy settings might fix a download from asset cache problem.
    • Now always output the full command line that was attempted when invoking an x-script that failed.
    • Fixed a crash that occurred when an x-script doesn’t create the file vcpkg expects or creates a file with the wrong hash.
    • Now always print what vcpkg is doing before touching the network, so if vcpkg hangs, the user will know which server is being problematic. This includes storing back to asset caches.
    • Removed misleading debug output about asset cache configuration.
  • A new file, manifest-info.jsonnow gets generated in the vcpkg_installed folder for projects using a manifest (vcpkg.json). This file contains the absolute path to the manifest file that was used to generate the vcpkg_installed tree. Can be used for debugging purposes (PR: Microsoft/vcpkg-tool#1568).
  • The experimental --x-use-aria2 option has been removed as it has not worked for several releases and download support in the rest of the product has matured substantially (PR: Microsoft/vcpkg-tool#1582).
  • Removed a misleading warning message that appeared when building ARM64EC packages with x64 upstream dependencies. ARM64EC also supports x64 binaries (PR: Microsoft/vcpkg-tool#1581).
  • Added a missing error message when attempting to install ports with multiple overrides set for the same port (PR: Microsoft/vcpkg-tool#1573).
  • Fixed a bug with the GitHub Actions binary cache (PR: Microsoft/vcpkg-tool#1572, thanks @j-mie!).
  • Other minor bug fixes.

Documentation changes

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,457
x86-windows 2,344
x64-windows-release 2,458
x64-windows-static 2,323
x64-windows-static-md 2,374
arm64-windows 2,058
arm64-windows-static-md 2,037
x64-uwp 1,372
arm64-uwp 1,337
x64-linux 2,435
x64-osx 2,308
arm64-osx 2,231
arm-neon-android 1,719
x64-android 1,791
arm64-android 1,761

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 (listed alphabetically by GitHub username):

aabellagm AenBleidd Agorath
ajtribick alfredh amoeba
ArashPartow autoantwort azure-sdk
bansan85 BewareMyPower BrandenXia
buck-yeh Bushidosan bwrsandman
bzindovic c8ef carlo-bramini
cenit ChristianPanov culhatsker
dalle daniele77 daschuer
dbolduc deshanxiao dg0yt
dpogue Dynamitos eao197
EfesX ethanmusser faserg1
farindk Filoppi fran6co
greg7mdp helynranta Honeybunch
IldarKhayrutdinov ilya-lavrenov j-mie
jackjansen jgillis Jhuighuy
jmcnamara JoergAtGithub jreichel-nvidia
Kblaschke kduske kimidaisuki22
lukasberbuer luncliff m-kuhn
malaterre michaelmigliore mingxwa
miyanyan mkhon moritz-h
mstorsjo mtmk Neumann-A
nickdademo noahknegt ohhmm
oleg-derevenetz Olli1080 Osyotr
paperchalice PavelKisliak Podsvirov
pozemka redboltz reinder
rremilian RT2Code rtzoeller
sargunv scotthart shybovycha
SunBlack sweemer T3RR7
talregev tarcila tartanpaint
Thomas1664 ThomsonTan toge
tomconder trueqbit tueda
valgur walbourn waruto210
waywardmonkeys wikiw91 ytnuf
zhcn000000

Learn more

You can find the main release notes on GitHub. 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.

Category
C++Vcpkg
Topics
vcpkg

Author

Augustin Popa
Senior Product Manager

Product manager on the Microsoft C++ team, currently working on vcpkg.

0 comments