Generated by GPT-5-mini| vcpkg | |
|---|---|
| Name | Vcpkg |
| Developer | Microsoft |
| Initial release | 2016 |
| Stable release | 2023 |
| Written in | C++ |
| Platforms | Windows, macOS, Linux |
| License | MIT |
vcpkg
vcpkg is an open-source package manager for C++ libraries created and maintained by Microsoft. It aims to simplify library acquisition and dependency management for developers using tools and environments such as Visual Studio, CMake, MSBuild, GCC, Clang, and Ninja. vcpkg supports cross-platform workflows spanning Windows 10, Windows Server, macOS Catalina, Ubuntu, and other operating environments, and interacts with package ecosystems and tooling like GitHub, Azure DevOps, Conan (package manager), NuGet, and Homebrew. The project sits within a broader landscape of package and build systems including Autotools, Bazel, Buck (build system), Meson (software) and SCons.
vcpkg provides a command-line interface to download, build, and install C++ libraries (often called "ports") from a curated ports tree. It integrates with package distribution and source control platforms such as GitLab, Bitbucket, SourceForge, and CPAN-style registries where upstream projects like Boost (C++ libraries), OpenSSL, zlib, SQLite, libpng and Qt (software) are commonly consumed. vcpkg's design complements development environments including Visual Studio Code, Visual Studio, CLion, IntelliJ IDEA and CI/CD systems like Jenkins, Travis CI, CircleCI, GitHub Actions, and Azure Pipelines. The tool interoperates with compilers and toolchains such as Microsoft Visual C++, MinGW-w64, Intel C++ Compiler, Apple clang, and LLVM.
Microsoft initiated vcpkg development to address C++ library distribution challenges encountered in large projects and enterprise settings involving organizations like Xbox Game Studios, Bing (search engine), Microsoft Research, and partners in the .NET Foundation. Early influences included package managers and systems such as CPython, RubyGems, npm, NuGet, Conan (package manager), and Homebrew; contributions and issue tracking have been centralized on GitHub, with community input managed through GitHub Issues and pull requests. Over time vcpkg added features to integrate with build systems and platforms supported by CMake, MSBuild, Ninja, Make (software), Xcode, Android NDK, and iOS toolchains. The project has seen involvement from developers who have worked on projects and institutions such as LLVM Project, Boost C++ Libraries, Google, Facebook, Amazon Web Services, NVIDIA, and academic groups at MIT, Stanford University, UC Berkeley, and Carnegie Mellon University.
vcpkg's architecture centers on a ports tree, triplets, binary caching, and a manifest mode. The ports tree references upstream sources hosted on servers run by entities like GitHub, SourceForge, GNU Savannah, and mirrors managed by organizations such as Eclipse Foundation or Apache Software Foundation. Triplets define build configurations for toolchains and targets that reflect platforms and ABIs used by Windows 10, macOS Big Sur, Ubuntu LTS, Red Hat Enterprise Linux, and Alpine Linux. Binary caching and artifact hosting integrate with services such as Azure Blob Storage, Amazon S3, and Google Cloud Storage. vcpkg supports features such as dependency resolution, multiple ABIs, static and dynamic linkage choices, overlay ports, and manifest-driven dependency specifications similar to Package.json paradigms used by Node.js and manifest systems used by Rust and Cargo (software). Security and provenance mechanisms echo best practices advocated by organizations like OpenSSF, OWASP, CVE Program, and National Institute of Standards and Technology.
Typical workflows use the vcpkg CLI to bootstrap, install, remove, and export packages. Common commands align with patterns familiar from tools in the ecosystems of Git, Subversion, Mercurial, Docker, and Podman. Developers run commands to install popular libraries such as Boost (C++ libraries), OpenCV, Eigen (C++ library), Protobuf, gRPC, LLVM Project, FFmpeg, Curl, and OpenSSL. Integration commands assist IDEs like Visual Studio Code and Visual Studio via settings and extensions, and CI scripts often call vcpkg from Jenkinsfiles, GitHub Actions workflows, Azure Pipelines YAML, or GitLab CI pipelines. vcpkg supports manifests resembling workflows in npm (software), Cargo (software), and Composer (PHP), and offers binary caching and reproducible builds compatible with artifact registries such as JFrog Artifactory and Sonatype Nexus Repository.
vcpkg maintains broad platform support for operating systems and processor architectures used by Windows, Linux, macOS, iOS, Android, Raspberry Pi, ARM64 architecture, and x86_64. The ports catalog includes widely used libraries from projects and organizations like Boost (C++ libraries), Qt (software), wxWidgets, SDL (software), GTK, FFmpeg, OpenCV, Eigen (C++ library), Poco (C++ libraries), Google Test, zlib, libpng, libjpeg-turbo, Curl, OpenSSL, Protobuf, gRPC, SQLite, LevelDB, and ROCm stacks from AMD. Ports also reflect bindings and interop components for ecosystems like Python (programming language), Java Platform, Standard Edition, .NET, Node.js, and Rust (programming language).
vcpkg integrates with build systems and IDEs through toolchain files, manifest integration, and native support in environments such as CMake, MSBuild, Visual Studio, Xcode, Autotools, Ninja, and Make (software). Projects using continuous integration in platforms like Travis CI, CircleCI, GitHub Actions, Azure DevOps, and GitLab CI commonly include vcpkg steps to restore dependencies. The integration model supports workflows used by large-scale projects from organizations including Google, Facebook, Microsoft, Apple, Intel, NVIDIA, and research groups at Lawrence Livermore National Laboratory. Toolchain and overlay mechanisms enable compatibility with compiler frontends such as Clang, GCC, MSVC, and vendor toolchains from ARM Ltd. and Intel Corporation.
vcpkg is governed through a combination of Microsoft stewardship and community contributions coordinated on GitHub repositories, with guidance influenced by open-source projects and foundations like The Linux Foundation, OpenSSF, Apache Software Foundation, and Eclipse Foundation. Contributors include engineers affiliated with Microsoft Research, Google, Canonical, Red Hat, JetBrains, ARM Ltd., NVIDIA, Intel Corporation, and independent maintainers from the wider open-source community. Community processes leverage issue trackers, pull requests, and maintainer teams similar to governance practices used by Linux kernel, LLVM Project, Kubernetes, Docker, and Node.js Foundation. The project participates in discussions about supply chain security and standards alongside OpenSSF, CISA, and other stakeholders active in securing software ecosystems.
Category:Package managers