pmd-pytcp 0.1.0
pmd-pytcp 0.1.0 — pure-asyncio runtime (breaking)
The stack now runs entirely on one asyncio event loop; all threads and threading primitives are gone.
Breaking: blocking socket calls (connect/accept/recv*/send*/sendmsg/probe_pmtu) are now coroutines — await them. bind/listen/close/shutdown/setsockopt stay sync. stack.start()/stack.stop() are coroutines. The eventfd-backed fileno()/select interop is removed (asyncio replaces it). Consumers must migrate to await; there is no compatibility shim.
Highlights
- Task-based
Subsystem;Timeroverloop.call_at;RxRingvialoop.add_reader+ deliver callback;TxRingdrains withadd_writerbackpressure (no worker/eventfd/marshaling). - Async socket API, TCP session+FSM, DHCP4/6, link-local, ACD, ARP/ND, IPC (
asyncio.start_unix_server), andrun_daemon. - Preserves the 0.0.5/0.0.6 robustness fixes (writev OSError fallthrough, abort-open-TCP-on-stop, ring fd-teardown survival).
- Python 3.9–3.14, Linux/macOS/Windows — CI green across all 18 combinations.