mcpp构建工具的默认包索引仓库。 在线浏览所有包:https://mcpplibs.github.io/mcpp-index/
本仓收录可被 mcpp 直接 add 的 C++23 包,既包含 import 即用的模块化库,也包含以 compat 形态从上游源码或
头文件构建的第三方 C/C++ 库。每个包对应一个 pkgs/<首字母>/<包名>.lua 描述文件。
mcpp add ftxui@6.1.9 # 添加依赖到 mcpp.toml
mcpp build # 自动拉取源码并构建,依赖沿链路自动传递
mcpp search <keyword> # 搜索并刷新索引
mcpp self config --mirror CN # 切换至国内镜像,默认使用 GLOBAL 上游源完整包列表见 在线索引站。
本仓收录两类包:
- 原生 mcpp 模块库:以 C++23 模块发布、
import即用,包括mcpplibs.*、nlohmann.json、imgui、ffmpeg、opencv,以及由 用户基于 mcpp 开发并登记进索引的库(如tensorvia-cpu)。其上游通常自带mcpp.toml,描述文件(Form A)只声明 元数据与下载地址。 - 第三方 C/C++ 库(
compat):其上游不提供 mcpp 支持,描述文件(Form B)内联构建信息。该类库存在 header-only、纯 C 源码、C++23 module wrapper 等形态,可选组件经features门控,并配备 GitCode CN 镜像。
| 形态 | 示例 |
|---|---|
| 原生模块库(Form A) | mcpplibs.xpkg · mcpplibs.tinyhttps · tensorvia-cpu · ffmpeg(模块层,源码经 compat.ffmpeg 直编) · opencv(模块层,源码经 compat.opencv 直编) |
C 源码 compat(含 features) |
compat.cjson · compat.zlib |
header-only(含 features) |
compat.eigen |
| 数据资产包(feature 依赖专用) | compat.opencv-unifont(CJK 字体,由 compat.opencv 的 unifont feature 拉取) |
外部构建系统(install() 从源码构建) |
compat.openblas(Make) |
| 全源码直编(config 快照 + 源列表,零外部构建系统) | compat.ffmpeg(2281 TU 含 NASM 汇编,28 个目录 glob 声明) |
全源码直编 + build.mcpp 消费端合成 |
compat.opencv(OpenCV 5,458 TU 真实路径直编,SIMD dispatch 保留,字体/内核/jpeg12/16 由包内 build.mcpp 生成,依赖 compat.ffmpeg 提供 videoio FFmpeg 后端;feature:unifont CJK 字体、dnn 深度学习模块(+309 TU 含 protobuf/mlas);旧 install() CMake 形态与过渡别名 compat.opencv5 均已移除) |
| C++23 module wrapper | nlohmann.json · marzer.tomlplusplus |
完整流程定义于 agent skill add-mcpp-index-package。可将下列
指令提供给 agent(如 Claude Code),由其调用该 skill 完成描述文件的编写与全流程:
参考本仓 skill `.agents/skills/add-mcpp-index-package`,将 <库名 / 仓库URL> @<版本> 收录进 mcpp-index:
判定形态;配置 CN 镜像(无 mcpp-res 权限时使用 plain-string 上游 url);编写 pkgs/<首字母>/<包名>.lua;
添加 tests/examples/<库>/ 测试工程并登记为 workspace 成员;使用与 CI 同版本的 mcpp 本地执行
`mcpp test -p <成员>` 进行验证;更新 README 与在线索引;提交 PR 并确认 CI 通过。
细节文档位于 docs/,供人工与 agent 共同使用:
- 库形态与描述符模板:C 源码、header-only、模块、外部 Form-A 四类模板与样例。
- CN 镜像闭环:
gtc与 gitcode 操作,以及无mcpp-res权限时的回退方案。 - 仓库结构与 schema 与 CI:字段速查、选跑机制与本地 lint。
- 字段规范见 mcpp 扩展字段文档。
提交 PR 后,
validate自动执行 lint 并按改动库选跑对应 workspace 成员(整个测试面是一个 mcpp workspace,公开模块包imgui/ffmpeg/opencv/tinyhttps也是普通成员——各成员经[indices]把所消费命名空间重定向到 checkout,零 shell 驱动);合并后,deploy-site将其发布至在线浏览站。
| 项目 | 说明 |
|---|---|
| mcpp | 现代 C++23 构建与包管理工具 |
| xlings | mcpp 底层的包安装引擎与沙箱环境 |
| xpkg V1 spec | 包描述文件规范 |
| mcpplibs | mcpp 生态的模块化 C++23 库集合 |
| mcpp-res | 包资源的 CN 镜像组织(gitcode) |
包描述文件采用 CC0;各上游库保留其自身许可证。