修正参赛者与 GitLink 仓库信息
面向 MoonBit 的分层时间轮与确定性虚拟时钟调度基础库。
MoonWheelKit 服务于网关超时、缓存失效、重试队列、游戏逻辑、离散事件模拟和 测试框架等需要管理大量截止时间的场景。核心库不读取系统时钟、不创建线程、 不依赖浏览器或操作系统 API,同一组输入在 Native、JavaScript、WebAssembly 和 Wasm-GC 后端产生一致结果。
普通 sleep 解决“当前任务等待多久”,MoonWheelKit 解决“如何组织大量未来 截止时间”。库内实现了:
sleep
let wheel = @moonwheelkit.Wheel::new() let timer = wheel.schedule( @moonwheelkit.TimerSpec::fixed_rate(2, 5, "heartbeat"), ) match wheel.advance_to(12) { @moonwheelkit.AdvanceResult::Advanced(report) => println(report.to_json()) @moonwheelkit.AdvanceResult::Rejected(_) => println("time cannot move backwards") }
迟到模式适合模拟事件循环暂停或进程恢复:
let report = wheel.advance_late_to(100)
该操作不会扫描跳过的每一个 tick,并严格限制固定频率任务一次最多补发 max_catch_up 个事件。
max_catch_up
Once
FixedDelay
FixedRate
零延迟任务可由 advance_by(0) 确定性排空。时间倒退会被拒绝。相同截止 时间按 timer id 稳定排序。
advance_by(0)
moon check moon test moon run cmd/main moon run bench/main
bench/main 会确定性调度并触发 10,000 个任务,同时执行不变量检查。仓库不 虚构跨机器性能比,正式测量方法见 docs/BENCHMARK_PLAN.md。
bench/main
docs/BENCHMARK_PLAN.md
MoonWheelKit 不是异步运行时、cron 解析器或持久化数据库。它提供可以嵌入这些 系统的确定性调度内核。与 MoonBit 生态现有项目的逐项边界记录在 docs/RELATED_WORK.md,检索日期为 2026-06-30。
docs/RELATED_WORK.md
Apache-2.0
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
MoonWheelKit
面向 MoonBit 的分层时间轮与确定性虚拟时钟调度基础库。
MoonWheelKit 服务于网关超时、缓存失效、重试队列、游戏逻辑、离散事件模拟和 测试框架等需要管理大量截止时间的场景。核心库不读取系统时钟、不创建线程、 不依赖浏览器或操作系统 API,同一组输入在 Native、JavaScript、WebAssembly 和 Wasm-GC 后端产生一致结果。
为什么不是普通定时器
普通
sleep解决“当前任务等待多久”,MoonWheelKit 解决“如何组织大量未来 截止时间”。库内实现了:快速示例
迟到模式适合模拟事件循环暂停或进程恢复:
该操作不会扫描跳过的每一个 tick,并严格限制固定频率任务一次最多补发
max_catch_up个事件。语义一览
OnceFixedDelayFixedRate零延迟任务可由
advance_by(0)确定性排空。时间倒退会被拒绝。相同截止 时间按 timer id 稳定排序。运行
bench/main会确定性调度并触发 10,000 个任务,同时执行不变量检查。仓库不 虚构跨机器性能比,正式测量方法见docs/BENCHMARK_PLAN.md。文档
项目边界
MoonWheelKit 不是异步运行时、cron 解析器或持久化数据库。它提供可以嵌入这些 系统的确定性调度内核。与 MoonBit 生态现有项目的逐项边界记录在
docs/RELATED_WORK.md,检索日期为 2026-06-30。License
Apache-2.0