认识 CJMP:以仓颉语言为核心的跨平台开发框架组织全景

CJMP 是华为仓颉语言生态中重要的开源组织,主打"高性能跨平台开发框架"。本文带你快速认识这个组织:它是谁、在做什么,以及 Docs / Tools / Engine / VibeCoding 等核心仓库各承担什么角色、如何配合使用。

一、组织简介

CJMP 是一个在 AtomGit 上开源的开发者组织,定位是高性能跨平台开发框架。

组织信息:

  • 组织主页:https://atomgit.com/CJMP
  • 成立时间:2024-08-21
  • 组织规模:140+ 成员,160+ 关注者
  • 官方定位:面向应用开发者提供一套代码多端运行的跨平台 UI 与工具链

CJMP 的独特之处在于它深度绑定仓颉(Cangjie)语言:开发者可以用仓颉语言编写跨平台 UI 业务逻辑,一次编码,同时运行到 Android / iOS / HarmonyOS 三端。它同时支持 Taro、React Native 等多前端接入,并沉淀了从 UI 引擎、命令行工具、IDE 插件到 AI 开发助手(VibeCoding)的完整生态。

二、仓库全景总览

CJMP 组织下的公开仓库可以分为四类,各司其职:

类别仓库作用
文档Docs应用开发者 / 框架开发者入门文档、命令行工具文档
运行时引擎Engine多前端支持的高性能跨平台 UI 引擎(C++)
工具链Tools、Build、DevTools、IDE-Pluginskeels CLI、构建脚本、辅助工具、DevEco 插件
AI 开发VibeCodingAI Agent 配置仓库(MCP 模板 + Skills)
源码 / SDKCJFrontend、OpenSDK、SystemLibs、Manifest仓颉侧框架、各平台 SDK 发布、系统库、repo 清单
网络能力LinkX、Quic跨端双向数据传输、QUIC 网络传输
社区Community、TestSIG 例会材料、测试用例

下面重点介绍四个核心仓库:Docs、Tools、Engine、VibeCoding。

三、Docs:开发者从这里开始

仓库地址: https://atomgit.com/CJMP/Docs(默认分支 opensource,文档为 Markdown)

Docs 是 CJMP 的文档中枢,组织内部几乎所有仓库的 README 都会把读者引导到这里。目录按角色划分:

  • zh-cn/app-dev/:应用开发者快速入门
    • quick-start/:开发准备(环境依赖清单)、环境搭建、命令行工具指南、获取示例
    • tools/:keels 各子命令的详细参数说明
    • vibe-coding/:AI 辅助开发相关文档
  • zh-cn/:框架开发者入门、版本发布说明(release-notes)等

以最常被引用的 应用开发快速入门 README 为例,它给出了完整的上手路径:

  1. 下载 CJMP SDK:按目标平台(Android / iOS / macOS 等)与版本,从 OpenSDK 仓库拉取对应分支(基于 Git LFS 管理大文件)。
  2. 配置环境变量:设置 CJMP_SDK_HOME 并把 SDK 下的工具目录加入 PATH。
  3. 准备开发工具:根据目标平台安装对应 IDE(如 DevEco Studio / Android Studio / Xcode),并安装 CJMP 插件。
  4. 创建并运行工程:用 keels create 初始化三端工程,用 keels build / keels run 构建运行。

小提示: 在搜索具体 API 时,还可以配合 VibeCoding 提供的 docs-mcp Skill,让 AI Agent 直接检索 CJMP 与 CJ-UI 的文档。

四、Tools:keels 命令行工具的源码

仓库地址: https://atomgit.com/CJMP/Tools(Python,默认分支 opensource)

Tools/ 是 CJMP 命令行工具 keels 的源码仓库,用途覆盖环境检查、项目创建、构建、运行与设备管理。

核心子命令(keels_tools/subcommand/):

命令作用
doctor检查本机 CJMP 开发环境是否完备
create创建新工程(生成 android/ios/hos 三端壳 + 共享仓颉源码)
build构建产物(hap / apk / ios 等)
run在已连接设备上运行工程

仓库结构:

  • bin/:命令入口脚本(./bin/keels)
  • keels_tools/:CLI 核心实现(subcommand / template / utils)
  • tests/:自动化测试(含教程 tests/test_tutorial.md)
  • main.py:本地调试入口(python3 main.py --help)

使用要求: bin/keels 要求 Python 3.8 及以上,跨平台支持 macOS / Windows / Linux。

实际使用时,开发者不一定需要自己编译 Tools——SDK 发布包中已内置编译好的 keels,直接调用即可。Tools 仓库面向的是想深入 CLI 实现、或想参与工具开发的开发者。

五、Engine:跨平台 UI 引擎的核心

仓库地址: https://atomgit.com/CJMP/Engine(C++,默认分支 opensource,组织内 Star 最高)

Engine 的定位是多前端支持、高性能、轻量化的跨平台 UI 引擎,是整个 CJMP 运行时的心脏。

架构组成(见仓库 README 的架构图):

  • 多 UI 前端适配层:提供多套 API 接口,可分别接入 Taro / React Native / CJ-UI 等前端
  • UI 组件层:Text、Row/Column 等声明式组件
  • 渲染管线:负责组件树(FrameNode 树)的测量、布局、绘制
  • 图形引擎 / 执行引擎 / 平台适配层:承接底层渲染与各平台能力

CJ-UI:仓颉语言的声明式 UI

对仓颉开发者来说,最常用的是 CJ-UI 这套接口——写法与 ArkUI 声明式语法高度一致:

@Entry
@Component
class MyView {
    func build() {
        Text("Hello Cangjie")
    }
}

以 @Entry 修饰的组件作为 CJMP-UI 的界面入口。编译时框架会为开发者补齐 UI 入口函数、页面回调注册等样板逻辑;运行时,NativeView::InitialRender 通过 C 与仓颉的互调用执行已注册的 build,仓颉组件再经 FFI 生成系统组件 FrameNode,由渲染管线完成整棵组件树的渲染。

构建产物:Engine 提供构建脚本产出各端产物,例如:

./build.sh --product-name keels --target-os android

生成 libkeels_android.so、keels_android_adapter.jar(Android)以及对应的 iOS / HarmonyOS(ohos_keels)引擎包。开发者写仓颉 UI 时,这些引擎库已通过 SDK / 壳工程接入,无需手动处理。

六、VibeCoding:面向 CJMP 的 AI Agent 配置仓库

仓库地址: https://atomgit.com/CJMP/VibeCoding(默认分支 opensource)

VibeCoding 是 CJMP 面向 AI 辅助开发的配置仓库——它不提供编译产物,而是提供一套让 AI Agent(Trae / OpenCode 等)能够"读懂并操作" CJMP 生态的资源,包含 MCP 配置模板 和 Skills 定义 两类内容。

资产清单:

类型路径说明
MCP 模板mcp/trae/mcp.jsonTrae / Trae CN 的 cjmp-docs 文档检索 MCP
MCP 模板mcp/opencode/mcp.jsonOpenCode 的 cjmp-docs 文档检索 MCP
Skillskills/cjmp-docs-mcp/本地 docs-mcp-server 索引,检索 CJMP 与 CJFrontend / CJ-UI 文档
Skillskills/cjmp-env-setup/在 macOS / Windows 上获取、更新并配置 CJMP 开发环境(SDK + 工具链 + keels doctor 验证)
Skillskills/cjmp-issue/按模板创建 CJMP 仓库的 issue
Skillskills/cjmp-ui-test/CJMP iOS 真机 UI 冒烟测试的配置与执行
Skillskills/cjmp-device-logs/拉取真机运行日志,配合调试

如何接入:

  1. 在支持的 AI IDE 中,把对应客户端的 mcp.json 模板合并进项目 .trae/ 或 ~/.config/opencode/opencode.json(只合并 cjmp-docs 服务,不要覆盖已有 MCP)。
  2. 将 skills/ 目录中的 Skill 拷贝到 Agent 约定的 skills 目录。
  3. 重启客户端 / 重载 MCP 后,AI 就能基于 docs 索引回答 CJMP / CJ-UI 的 API 问题,或直接执行环境配置、UI 测试、日志抓取等工作。

对正在用 CJMP 写代码的开发者来说,VibeCoding 相当于把"查文档、配环境、跑测试"这些重复劳动交给 AI 的标准姿势。

七、配套仓库速览

除上述核心仓库外,CJMP 组织还维护了一批配套仓库,组合起来才构成完整框架:

  • CJFrontend / SystemLibs:仓颉侧框架实现与系统库封装,CI / 框架开发者关注。
  • OpenSDK:各平台 SDK 的发布仓库(Git LFS 大文件)。应用开发者按分支 git clone -b <branch> 拉取即可,无需自己编译。
  • Build / Manifest:构建脚本与 repo 清单,帮助用 repo 工具一次拉齐整套源码。
  • IDE-Plugins / DevTools / XcodePlugins:DevEco Studio 插件、辅助开发工具、Xcode 插件。
  • LinkX / Quic:跨端 TCP 长连接实时传输与 QUIC 网络能力,是"跨平台不止 UI"的体现。
  • Community:跨平台框架 SIG 例会材料与纪要,社区参与者可以在这里了解演进方向。

八、写给初学者的行动路径

想用 CJMP 快速跑起来一个应用?按下面的路径最省力:

  1. 读 Docs 快速入门:https://atomgit.com/CJMP/Docs/blob/opensource/zh-cn/app-dev/quick-start/README.md
  2. 装 SDK:从 OpenSDK 按平台分支 clone,配好 CJMP_SDK_HOME
  3. 装 IDE 插件:按目标平台安装 DevEco Studio / Android Studio 的 CJMP 插件
  4. 跑 CLI:keels doctor 自检 → keels create 建工程 → keels build 构建
  5. 接入 AI:可选——配置 VibeCoding 的 MCP + Skills,把文档检索和环境排查交给 Agent

如果想深入框架本身(UI 引擎原理、多前端接入、CLI 实现),则去读 Engine 与 Tools 的源码和各自文档。

九、总结

CJMP 组织以仓颉语言 + 跨平台为主线,构建了一条清晰的链路:

Docs(怎么用)→ OpenSDK(SDK 在哪)→ Tools(用什么命令)→ Engine / CJFrontend(引擎如何工作)→ VibeCoding(AI 如何帮你)

四类仓库配合紧密:应用开发者从 Docs 出发,借助 OpenSDK 与 Tools 完成开发交付;框架开发者深入 Engine / CJFrontend 贡献力量;而 VibeCoding 正在把 AI 纳入这条开发链路,降低新手的学习门槛。

对于关注仓颉生态与跨平台框架的人而言,CJMP 值得持续跟踪——它既是"仓颉跨端 UI"落地的样板,也是国产开源框架工程化组织方式的一个缩影。


相关链接:

  • CJMP 组织主页:https://atomgit.com/CJMP
  • Docs:https://atomgit.com/CJMP/Docs
  • Engine:https://atomgit.com/CJMP/Engine
  • Tools:https://atomgit.com/CJMP/Tools
  • VibeCoding:https://atomgit.com/CJMP/VibeCoding
  • OpenSDK:https://atomgit.com/CJMP/OpenSDK
Logo

一站式 AI 云服务平台

更多推荐