目录

MoonNinja 🥷🌙

MoonBit Version License

MoonNinja 是一款针对 MoonBit 与 WASM 生态的轻量级、超快速构建解决方案,语法上兼容标准的 build.ninja 文件。

🌟 核心特性 (Features)

  • 极速解析:纯 MoonBit 编写的无锁词法分析器与递归下降解析器。
  • 精确增量:支持基于文件 MTime 及内容哈希的 DAG 脏数据检测。
  • 跨平台与零依赖:得益于 MoonBit 的特性,MoonNinja 可以编译至 WASM 在任何平台执行,也可编译为 Native 机器码,无 Python 或 C++ 运行时依赖。

🏗 架构设计 (Architecture)

  1. Lexer & Parser:使用有限状态机进行 Token 提取,支持 Ninja 的缩进与换行语义。
  2. DepGraph:在内存中构建由 BuildEdge 组成的有向无环图 (DAG),进行强连通分量 (SCC) 环路检测。
  3. Scheduler:计算入度为 0 的任务,推入多核无锁队列并发执行。
  4. Executor:通过 MoonBit FFI 调用系统 API 执行子进程。

🤝 贡献与大赛

本项目为 2026 MoonBit 基础软件生态开源大赛 的参赛作品。 欢迎提交 Issue 和 Pull Request!

关于

MoonNinja 是一个完全由 MoonBit 语言编写的轻量级、超快速的构建系统。它旨在作为原生系统开发的构建底座,通过极速解析 build.ninja 风格的构建清单、生成依赖图、并在多核上并行调度执行任务,填补 MoonBit 生态在工程基础设施(特别是构建编排工具链)方面的空白。

503.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号