
vcpkg
A free C/C++ package manager that downloads and builds libraries for your projects.
- Stars
- 27.6k
- Forks
- 7.8k
- Licence
- MIT
- Language
- CMake
- Last update
- 4 days ago
- Type
- Dev tool
What it is
vcpkg is a free, open-source package manager for C and C++ libraries, maintained by Microsoft and the C++ community. It fetches libraries from a large registry, builds them, and makes them available to your project's build system. It runs on Windows, macOS, and Linux and works with CMake, MSBuild, and other build systems.
- Add a library such as fmt to a CMake project using a manifest file
- Install a library from the command line with a single install command
- Pin dependency versions so builds are consistent across machines
- Cache built binaries to avoid rebuilding packages
Great for
- C and C++ developers who need third-party libraries in their projects
- Teams using Visual Studio, CMake, or MSBuild
- Developers who want pinned, reproducible dependency versions via manifests
- Projects that need to share built binaries across machines using binary caching
Not ideal for
- Developers working in languages other than C/C++, since it targets C/C++ packages
- Air-gapped environments without a prior connected setup, because ports download source and build tools from official locations and need access during install
- Anyone who needs a library that is not in the registry without being willing to contribute a package
How to get it
- 1
Clone and build from source
Clone the repository
git clone https://github.com/microsoft/vcpkg - 2
Run it
- Follow one of the official quick start guides for your build system (CMake, MSBuild, or other)
- Create a manifest with vcpkg new --application and add a package with vcpkg add port fmt
- Or install a package directly with vcpkg install fmt
- Integrate with your build system and run vcpkg help for command details
- 3
Get the most out of it
- Use manifest mode to declare and version your project's dependencies
- Enable binary caching to reuse built packages
- Use asset caching to support offline or restricted-network builds
- Add tab completion to your terminal, as described in the README
Downloads
Strengths
- Large collection of open-source C/C++ libraries in one registry
- Works across Windows, macOS, and Linux and with several build systems
- Supports manifests, version control of dependencies, and binary caching
Trade-offs
- Scope is limited to C and C++ libraries
- Some ports download sources and tools from external locations, so network access is needed during installs
- Telemetry is on by default and must be disabled manually if unwanted
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| vcpkg (this) | 27.6k | Dev tool | intermediate | 4 days ago | C and C++ developers who need third-party libraries in their projects |
| awesome-cpp | 74.2k | Curated list | beginner | 6 days ago | C++ developers looking for a library for a specific task |
| composer | 29.6k | Dev tool | beginner | 4 days ago | PHP developers starting a new project who want standard third-party libraries |
| infer | 15.7k | Dev tool | intermediate | 4 days ago | Developers working on Java, C, C++, or Objective-C codebases |
| calculator | 31.1k | App | intermediate | 13 days ago | Windows 11 users who want to read or modify the built-in calculator |
| UniGetUI | 26.8k | App | beginner | 4 days ago | Windows users who already use WinGet, Scoop or Chocolatey and want one place to manage them |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.