Tinyio: A tiny (~200 line) event loop for Python
10 months ago
- #Event Loop
- #Python
- #Asynchronous Programming
- tinyio 是一个为 Python 设计的简单事件循环,旨在作为 asyncio 的替代方案,适用于更简单的使用场景。
- 它使用 `yield` 而非 `await` 来实现协程挂起,但行为一致。
- 支持通过 `yield coro` 或 `yield [coro1, coro2]` 等待单个或多个协程。
- 任一协程出错会取消事件循环中所有协程,并传播 `CancelledError`。
- 可通过 `tinyio.run_in_thread` 在线程中运行同步函数。
- 提供 `tinyio.sleep` 实现延迟,且无线程限制地处理嵌套循环。
- 通过链式追踪栈和跨线程错误传播,简化错误处理。
- 设计追求健壮性,提供比 asyncio 或 trio 更直观的错误语义。
- 最适合不需要复杂事件循环功能的简单场景。