vcpkg C++ Package Scraper avatar

vcpkg C++ Package Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
vcpkg C++ Package Scraper

vcpkg C++ Package Scraper

Scrape the vcpkg.io catalog of 2,850+ C++ libraries. Full-text search, exact lookup by name, reverse-dependency ("used by") lookup, license/platform browsing, and popularity ranking. Pure public JSON, no auth, no proxy.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

Scrape the vcpkg.io catalog — Microsoft's open-source package manager for C and C++, with 2,850+ libraries. Full-text search, exact lookup by package name, reverse-dependency ("Used By") lookup, browse by license or platform support, and popularity ranking by dependent count. Pure public JSON/HTML, no auth, no login, no proxy required.

What this actor does

  • Six modes: search, byNames, usedBy, browse, byLicense, byPlatform
  • Full-text search across every package's name and description
  • Reverse-dependency lookup — find every package that depends on a given library (e.g. everything that depends on fmt or boost-asio)
  • Popularity ranking — sort by how many other packages depend on a library
  • License & platform browsing — filter by SPDX license or by Windows/Linux/macOS/Android/UWP/Xbox/etc. platform support
  • Optional version history — full historical Version#Port-Version list per package
  • Empty fields are omitted — every record only contains fields with real data

Output per package

  • name — canonical vcpkg package name (e.g. fmt, boost-asio)
  • version, portVersion, fullVersion (e.g. 12.2.0#1)
  • description — full description (multi-paragraph descriptions are joined; falls back to the port's one-line Summary for the small number of packages that only publish that field)
  • homepage, documentation — project URLs
  • license — raw SPDX license expression (e.g. MIT, MIT OR Apache-2.0)
  • supports — raw platform-support boolean expression (e.g. !uwp & !xbox), when the package has one
  • supportedPlatforms[] — curated platform tokens derived from supports
  • dependencies[], dependencyCount — direct runtime/build dependency names
  • hostDependencies[] — dependencies needed only at build time (cross-compilation helpers)
  • features[], featureCount — optional installable features
  • featureDetails[]{name, description} for each optional feature that publishes a description (covers ~99% of features across the catalog)
  • defaultFeatures[] — features enabled by default
  • maintainers[]
  • lastModified, lastCommit — last registry update date and git commit SHA
  • dependentCount — how many other cataloged packages depend on this one (computed from the full catalog)
  • dependsOnPackages[] — present only on mode=usedBy results; which of your queried names this package depends on
  • versionHistory[], versionCount — present only when includeVersionHistory=true (mode=byNames); each entry is {version, portVersion}
  • vcpkgUrl — the package's page on vcpkg.io
  • vcpkgPortSourceUrl — the port's source folder on GitHub
  • catalogBaseline — the git commit SHA of the microsoft/vcpkg registry this catalog snapshot was generated from (vcpkg.io's output.json Baseline field), useful for reproducibility/audit trails
  • recordType: "package", scrapedAt

Input

FieldTypeDefaultDescription
modestringsearchsearch / byNames / usedBy / browse / byLicense / byPlatform
searchQuerystringjsonFree-text query matched against name + description (mode=search)
packageNamesarray["fmt"]Exact package name(s) — full lookup (mode=byNames) or reverse-dependency target(s) (mode=usedBy)
includeVersionHistorybooleanfalseFetch full version history per package (mode=byNames only, capped at first 20 names)
licensestringSPDX license filter — dropdown of ~20 common licenses, or custom + licenseContains for any other
licenseContainsstringFree-text license substring (overrides license dropdown); use for long-tail SPDX ids
platformTokenstringPlatform token: windows, linux, osx, android, uwp, xbox, freebsd, openbsd, mingw, arm, arm64, x64, x86, static, native
platformModestringsupportssupports (package builds on this platform) or excludes (package explicitly does not)
hasHomepagebooleanfalseOnly emit packages that publish a project homepage URL (mode=search)
sortBystringrelevancerelevance / name / lastModified / mostDependents
maxItemsinteger20Hard cap on emitted records (1–2857 — the full catalog)
offsetinteger0Skip this many matching records (pagination)

license, platformToken, hasHomepage, and sortBy also work as optional filters on mode=search, so you can combine a text query with a license and/or platform constraint in one call.

Example: full-text search with filters

{
"mode": "search",
"searchQuery": "json",
"license": "MIT",
"hasHomepage": true,
"sortBy": "mostDependents",
"maxItems": 20
}

Example: exact lookup with version history

{
"mode": "byNames",
"packageNames": ["fmt", "spdlog", "nlohmann-json"],
"includeVersionHistory": true
}

Example: who depends on a library

{
"mode": "usedBy",
"packageNames": ["fmt"],
"sortBy": "mostDependents",
"maxItems": 100
}

Example: browse most-depended-upon packages

{
"mode": "browse",
"sortBy": "mostDependents",
"maxItems": 50
}

Example: packages under a specific license

{
"mode": "byLicense",
"license": "Apache-2.0",
"maxItems": 200
}

Example: packages that support Linux but not Windows

{
"mode": "byPlatform",
"platformToken": "linux",
"platformMode": "supports",
"maxItems": 200
}

Use cases

  • Dependency audits — check which C++ libraries in your stack have security-relevant licenses (GPL/AGPL) before shipping
  • Build-system tooling — bulk-export dependency graphs for internal package mirrors
  • Open-source research — study the C++ ecosystem's dependency graph, most-relied-upon libraries, and license distribution
  • Migration planning — find every package that depends on a library you're about to deprecate or replace
  • Platform-support audits — find which libraries you can rely on for a cross-platform (Linux/macOS/Windows) build
  • Developer tooling — power an internal package-search UI or CLI autocomplete for your organization's C++ projects

FAQ

What is vcpkg? vcpkg is Microsoft's open-source C/C++ package manager, used to build and install third-party libraries on Windows, Linux, and macOS. The catalog has 2,850+ ports (packages).

What's a "port"? vcpkg calls each package a "port" — the recipe that builds a given library from source for a given platform triplet.

What are Version and Port-Version? Version is the upstream library's release version. Port-Version increments when the build recipe changes without the underlying library version changing (bug fixes to the packaging itself). fullVersion combines both as 12.2.0#1.

Why do some packages have no license or homepage? Not every port declares these fields in its manifest. The actor only includes fields the source actually provides — no placeholders.

How is dependentCount computed? By scanning the entire catalog once per run and counting every package whose dependencies (including dependencies gated behind an optional feature) reference the target package. It matches the "Used By" count shown on vcpkg.io's own package pages.

What's the difference between dependencies and features? dependencies are always installed. features are optional add-ons a consumer can opt into (e.g. a benchmark feature that pulls in a testing library only when enabled). defaultFeatures are features enabled automatically unless a consumer opts out.

What does supports mean, and how does platformToken filtering work? vcpkg ports declare a boolean platform expression (e.g. !uwp & !xbox, linux | osx) describing which platforms they build on. platformToken filtering evaluates that expression with your chosen token set to true and every other token false — this is precise for simple single-platform expressions (the vast majority) but can under-report compatibility for exotic multi-architecture expressions that combine an OS token with a specific CPU architecture token (e.g. linux & x64). Treat results as directionally accurate. Packages with no supports field at all have no platform restriction and are treated as universally supported.

Why is licenseContains separate from license? vcpkg ports use ~180 unique license strings, including SPDX combinators (AND/OR/WITH). The license dropdown covers the ~20 most common single SPDX identifiers (matched as a substring, so it also matches compound expressions like MIT OR Apache-2.0). For anything else, licenseContains accepts free text.

How fresh is the data? The catalog is Microsoft's live vcpkg.io/output.json export, regenerated whenever a port is added or updated in the microsoft/vcpkg repository — typically several times a day.

Is version history available for every mode? Only as an opt-in enrichment on mode=byNames (includeVersionHistory=true), capped at the first 20 requested names per run, since it requires one extra page fetch per package.

Is this affiliated with vcpkg or Microsoft? No, this is a third-party actor using the public vcpkg.io catalog data. It is not affiliated with, endorsed by, or sponsored by Microsoft or the vcpkg project.