Hasty Briefsbeta

双语

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 更直观的错误语义。
  • 最适合不需要复杂事件循环功能的简单场景。