mcpp构建工具的默认包索引仓库
mcpp add mcpplibs:cmdline@0.0.2 # 模块化库
mcpp add compat:ftxui@6.1.9 # 非模块化兼容库
mcpp build # 自动拉取源码 + 构建mcpp 0.0.6+ 使用显式 namespace 字段区分包的类别:
| namespace | 含义 | 鼓励使用 |
|---|---|---|
mcpplibs |
模块化 C++23 库(mcpplibs 生态) | ✅ 推荐 |
mcpplibs.capi |
C API 的 C++23 模块封装 | ✅ 推荐 |
compat |
非模块化 C/C++ 库(兼容性支持) |
| 包名 | 版本 | 简介 | 仓库 |
|---|---|---|---|
cmdline |
0.0.2 | 命令行解析框架 — import mcpplibs.cmdline; |
mcpplibs/cmdline |
tinyhttps |
0.2.2 | 轻量 HTTP/HTTPS 客户端(SSE 流式) — import mcpplibs.tinyhttps; |
mcpplibs/tinyhttps |
llmapi |
0.2.5 | 大语言模型 API 客户端(OpenAI/Anthropic 兼容) — import mcpplibs.llmapi; |
mcpplibs/llmapi |
xpkg |
0.0.39 | xpkg V1 规范的 C++23 参考实现 — import mcpplibs.xpkg; |
openxlings/libxpkg |
templates |
0.0.1 | 最小化模块库模板 — import mcpplibs.templates; |
mcpplibs/templates |
| 包名 | 版本 | 简介 | 仓库 |
|---|---|---|---|
lua |
0.0.3 | Lua 5.4 C API 的 C++23 模块封装 — import mcpplibs.capi.lua; |
mcpplibs/lua |
这些库的上游没有 C++23 模块化支持,mcpp 通过 Form B 描述文件提供兼容性构建。 建议优先使用对应的模块化封装(如
mcpplibs.capi.lua替代compat.lua)。
| 包名 | 版本 | 简介 |
|---|---|---|
ftxui |
6.1.9 | C++ 函数式终端 UI 库(screen + dom + component) |
gtest |
1.15.2 | Google Test 测试框架 |
mbedtls |
3.6.1 | TLS/加密库(纯 C) |
lua |
5.4.7 | Lua 脚本语言(纯 C 嵌入式库) |
mcpplibs:llmapi
└── mcpplibs:tinyhttps
└── compat:mbedtls ← mcpp 自动传递,无需手动声明
mcpplibs:xpkg
└── mcpplibs.capi:lua
└── compat:lua ← 同上
mcpp 0.0.3+ 的 transitive walker 自动沿链路传播头文件和依赖,消费者只需声明直接依赖。
每个包对应一个 pkgs/<首字母>/<包名>.lua 文件,遵循 xpkg V1 规范。
Form A — 上游自带 mcpp.toml,描述文件只声明元数据和下载地址:
package = {
spec = "1",
name = "mcpplibs.tinyhttps",
xpm = {
linux = { ["0.2.2"] = { url = "...", sha256 = "..." } },
macosx = { ["0.2.2"] = { url = "...", sha256 = "..." } },
windows = { ["0.2.2"] = { url = "...", sha256 = "..." } },
},
}Form B — 上游没有 mcpp.toml,在描述文件里内联构建信息:
package = {
spec = "1",
name = "ftxui",
xpm = { ... },
mcpp = {
include_dirs = { "*/include", "*/src" },
sources = {
"*/src/ftxui/**/*.cpp",
"!*/src/ftxui/**/*_test.cpp", -- glob 排除(mcpp 0.0.4+)
"!*/src/ftxui/**/*_fuzzer.cpp",
},
targets = { ["ftxui"] = { kind = "lib" } },
},
}mcpp 初次运行时自动 clone 本仓库到 ~/.mcpp/registry/data/mcpp-index/。后续更新:
mcpp search <keyword> # 触发索引刷新 + 搜索也可手动拉取:
cd ~/.mcpp/registry/data/mcpp-index && git pull- Fork 本仓库
- 在
pkgs/<首字母>/下创建<包名>.lua,参考现有文件(mbedtls.lua、ftxui.lua) - 提交 PR —
validateworkflow 自动 lint,deploy-site合入后自动发布到浏览站
详细格式说明见 mcpp 扩展字段文档。
| 项目 | 说明 |
|---|---|
| mcpp | 现代 C++23 构建 & 包管理工具 |
| xlings | mcpp 底层的包安装引擎 + 沙箱环境 |
| xpkg V1 spec | 包描述文件规范 |
| mcpplibs | mcpp 生态的模块化 C++23 库集合 |
| xim-pkgindex | xlings 的通用包索引仓库 |
- Issues / 反馈: mcpp issues · mcpp-index issues
- 讨论 / 论坛: d2learn 论坛
- mcpplibs 库贡献: 各库仓库接受 PR,CI 使用 mcpp 构建验证
包描述文件: CC0。各上游库保留其自身许可证。