TopoSort 是一个高效的 Zig 库,用于对依赖图进行拓扑排序。它提供图构建、拓扑排序、用于并行处理的无依赖子集生成、循环检测/报告等功能,并支持多种节点类型。 使用方法:使用 `zig fetch` 获取库,更新 `build.zig.zon` 和 `build.zig`,然后在你的 Zig 源代码中导入它。你可以使用节点类型和分配器初始化 `TopoSort`。使用 `add` 或 `add_dep` 函数添加依赖关系。使用 `sort` 对图进行排序,使用 `has_cycle()` 检查循环,并通过 `get_sorted_sets` 访问用于并行处理的排序子集。对于简单的节点类型,值会被复制;对于切片,内存由调用者管理。初始化时可以使用 `verbose` 和 `max_range` 等配置选项。还提供 CLI 工具 `toposort-cli` 和基准测试用于性能测试。