mkio 1.1.0
mkio 1.1.0 adds the top-level event_loop config key and runs on asyncio's selector loop on Windows by default. A minor release: an addition to the config format, no change to the wire protocol, CLI, clients, expression language or on-disk layout.
Added
event_loopconfig key:"auto"(default),"selector","proactor"(Windows only, for servers that need more than the 512 socketsselect()handles there) or"uvloop"."proactor"is refused at config load anywhere but Windows.mkio.app.loop_factory(event_loop, platform)resolves the key: uvloop where installed, else the selector loop on Windows, else asyncio's default.
Changed
MkioApp.run()builds its loop throughasyncio.Runner(loop_factory=...). uvloop is no longer installed as a process-wide policy (set_event_loop_policyis deprecated in Python 3.14), so a plainasyncio.new_event_loop()afterrun()is still asyncio's own.
Fixed
- On Windows,
run()printed aConnectionResetError: [WinError 10054]traceback for every connection a browser opened ahead of a page load and dropped. The Proactor loop tears a transport down with ashutdown()the peer's reset makes Windows refuse; the selector loop closes the socket quietly. The server kept working either way; the noise was the bug.
Install: pip install mkio==1.1.0 — https://pypi.org/project/mkio/1.1.0/