Skip to content

Repository files navigation

mcpp-index

English | 简体中文

The default package index for the mcpp build tool. Browse every package online: https://mcpplibs.github.io/mcpp-index/

The C++23 packages mcpp can add directly: modular libraries ready to import, and third-party C/C++ libraries built from upstream sources in compat form. Each package is one pkgs/<initial>/<name>.lua descriptor.

Requires mcpp 2026.9.18.3 or later (min_mcpp in index.toml). Older engines silently misbuild [c-abi] packages such as openkal-musl. Upgrade: xlings install mcpp --force.

Usage

mcpp add ftxui@6.1.9           # add the dependency to mcpp.toml
mcpp build                     # fetch sources and build; dependencies propagate along the chain

mcpp search <keyword>          # search and refresh the index
mcpp self config --mirror CN   # switch to the CN mirror; GLOBAL upstream is the default

Package kinds

  • Native mcpp module libraries (Form A): upstream carries its own mcpp.toml; the descriptor only declares metadata and a download address. mcpplibs.*, nlohmann.json, imgui, opencv, tensorvia-cpu, …
  • Third-party C/C++ libraries (compat, Form B): upstream has no mcpp support, so the descriptor inlines the build. Header-only, C/C++ sources, or a C++23 module wrapper; optional parts sit behind features; a GitCode CN mirror serves the same bytes.

Reference examples

One descriptor per common shape:

Shape Example
Native module library (Form A) mcpplibs.tinyhttps · gzj-creator.galay
C sources + features compat.cjson
C++ sources, several versions compat.yaml-cpp
Header-only compat.gtl
Generated config header compat.c-ares
C++23 module wrapper nlohmann.json
C++23 module shipped by upstream khronos.vulkan-hpp
External build system (install()) compat.openssl

Every other shape, and why each descriptor is written the way it is, is in Descriptor examples by shape.

Adding a package

The procedure is the agent skill add-mcpp-index-package. Hand an agent (Claude Code, for example) this instruction:

Following this repo's skill `.agents/skills/add-mcpp-index-package`, add <library name / repo URL> @<version> to
mcpp-index: determine the shape; configure the CN mirror (use a plain-string upstream url when you have no mcpp-res
access); write pkgs/<initial>/<name>.lua; add a tests/examples/<lib>/ test project and register it as a workspace
member; verify locally with the same mcpp version CI pins by running `mcpp test -p <member>`; update the README and
the online index; open a PR and confirm CI is green.

A PR runs lint and tests only the workspace members that depend on the changed descriptors; after the merge, deploy-site publishes the site.

Documentation

Related links

Project Description
mcpp Modern C++23 build and package management tool
xlings The package installation engine and sandbox environment underneath mcpp
xpkg V1 spec Package descriptor specification
mcpplibs The collection of modular C++23 libraries in the mcpp ecosystem
mcpp-res The CN mirror organization for package resources (gitcode)

Community

mcpp issues · d2learn forum

License

The package descriptors are CC0; each upstream library keeps its own license.

About

mcpp package index registry — modular C++23 packages for mcpp build tool

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages