moon_toolkit is a native MoonBit implementation of 40+ classical graph algorithms and data structures — covering traversal, shortest paths, minimum spanning trees, network flow, bipartite/matching, connectivity, coloring, centrality, and advanced data structures (Union-Find, heaps, segment trees, sparse tables).
Zero external dependencies, pure MoonBit, fully tested (191 passing unit tests).
Ready-to-use examples: shortest_path_demo, advanced_demo, plus a real-world dependency analyzer (real_world_demo) and a scalability benchmark (benchmark_demo).
Published on mooncakes.io as OldPigxjk/moon_toolkit@0.1.2, Apache-2.0 licensed.
Install: moon add OldPigxjk/moon_toolkit. Then call algorithms via qualified namespaces, e.g. @shortest_path.dijkstra, @traverse.topo_kahn, @centrality.pagerank.
moon_toolkit
MoonBit 通用图算法工具箱 —— 40+ 经典图论与基础算法原生实现,覆盖遍历、最短路、最小生成树、网络流、匹配、连通性、着色、中心性与高级数据结构。
✨ 特性
Graph[N, E](节点 / 边带权,类型安全)🎯 与 mooncakes.io 竞品的差异化
mooncakes.io 上现有图算法包(如 MoonGraph、moonpath)主要覆盖遍历 / 最短路 / 路径规划。本项目独有的 最小生成树、网络流、全源最短路、二分图匹配、匈牙利指派、欧拉路、割点桥、强连通分量、2-SAT、传递闭包、LCA、图着色、中心性度量 等形成互补而非重复。
🌐 English Overview
moon_toolkit is a native MoonBit implementation of 40+ classical graph algorithms and data structures — covering traversal, shortest paths, minimum spanning trees, network flow, bipartite/matching, connectivity, coloring, centrality, and advanced data structures (Union-Find, heaps, segment trees, sparse tables).
shortest_path_demo,advanced_demo, plus a real-world dependency analyzer (real_world_demo) and a scalability benchmark (benchmark_demo).OldPigxjk/moon_toolkit@0.1.2, Apache-2.0 licensed.Install:
moon add OldPigxjk/moon_toolkit. Then call algorithms via qualified namespaces, e.g.@shortest_path.dijkstra,@traverse.topo_kahn,@centrality.pagerank.🏗 架构与算法清单
包结构(依赖关系)
算法清单(按子包)
graphGraph[N,E]、连通分量、二分图判定与着色、Welsh-Powell / DSATUR 着色、LCA、传递闭包、欧拉路、DOT 序列化、边表构造dstraverseshortest_pathflowmatchingcentrality📥 安装
随后在消费方包的
moon.pkg的import块中声明所需子模块即可(模块会自动以末段命名空间引入,例如@graph/@shortest_path/@traverse):🚀 快速开始 / Quick Start
🛠 构建 & 测试
GitHub Actions CI 已包含 五个过程(均带
--deny-warn):moon check/moon build/moon fmt --check/moon info/moon test,完整覆盖章程验收标准5 要求的「检查、构建、测试」。📐 代码规模
.mbt,非测试)*_test.mbt)*_extra_test.mbt边界测试)🔗 仓库
📚 参考与开源合规
🛡️ 正确性与边界测试保证
针对图算法在孤立点、非典型连通结构、自环、平行边下的正确性风险,本库做了专项加固,并全部纳入
moon test(191/191 通过):@traverse.eulerian):path.length() == 总边数 + 1终校验,拒绝非连通边集(孤立边组返回None);eulerian_isolated_vertex_before_cycle、eulerian_isolated_vertex_only、eulerian_trail_with_isolated_suffix、eulerian_disconnected_two_cycles、eulerian_self_loop、eulerian_parallel_edges等。cross_validation_test.mbt做三方对拍(Dijkstra/Bellman-Ford/Floyd-Warshall、Prim/Kruskal、Edmonds-Karp/Dinic),并校验路径还原性质。graph/boundary_extra_test.mbt、shortest_path/boundary_extra_test.mbt、shortest_path/dijkstra_extra_test.mbt、shortest_path/floyd_warshall_extra_test.mbt、traverse/bfs_extra_test.mbt、traverse/boundary_extra_test.mbt等共 6 个文件、36 项边界用例,覆盖负权、负环、空图、单点、孤立节点、不连通分量等典型异常输入。📄 许可证
Apache-2.0