Vite 风格的 MicroPython 热重载框架。改本地 .py → 通过串口帧协议推送到板子 → 在一个永不重启的 asyncio loop 内部局部热重载,硬件外设与应用状态不丢失。
- host/ — PC 端 Python CLI(包
mpyhr),复用mpremote传输层做引导部署。 - device/ — 部署到板子的 MicroPython 运行时(supervisor loop + registry + 五级中间态守护)。
- examples/ — 最小用户 app 示例(LED 计数器、OLED 计数器)。
- tests/ — 纯 CPython 单测 + unix-port 端到端测试(零硬件)。
设计文档见仓库根的设计计划。核心约定:
- 跨 reload 存活的只能是
state里的数据;代码执行位置一律丢弃重做。 - reload 只在边界(帧/事务)发生,绝不打断进行中的操作。
- 硬件由持久
registry持有,构造一次,重载模块通过setup(resources, state)复用。
uv sync # 安装 host 依赖
uv run pytest # 跑纯 CPython 测试def setup(resources, state): # 每次(重)载一次:幂等建硬件、初始化 state、注册 disposer
...
async def render(resources, state): # 一个安全工作单元(一帧/一事务),持久数据进 state
...