- Optimize event processing in the internal network stack by always consuming as many events as possible before polling the virtual network device and processing open TCP sockets. - Ensure that only one TCP socket is created per connection, even if `SYN` packets are resent for some reason. - Channel sizes for processing events in the internal network stack are increased to avoid errors with full channels when some tasks don't keep up. - Logging calls are removed from the network task's hot loop unless the project is built in `debug` mode. - Failures to send to channels that were already closed when processing data that was received for sockets are now ignored to avoid crashes.
0.1.15
- Manually include source files for the test client binary in published `sdist`s to ensure the sources which are published on PyPI can actually be built.
0.1.14
- Increase buffer size for WireGuard packets to accommodate large outgoing packets. - Check length of outgoing packets and drop packets that are larger than the maximum possible WireGuard packet payload (maximum packet size - WireGuard header length) to avoid crashes with super-sized packets.
0.1.13
- Update dependencies to the latest versions (pyo3 v0.17, pyo3-asyncio v0.17, pyo3-log v0.7), now that pyo3-asyncio v0.17 was released with pyo3 v0.17 support. - Switch back from patched version of pyo3-asyncio to the official releases, since v0.17 incorporates our patch.
0.1.12
- Fix a race condition in the shutdown code that could cause shutdown to never happen. - Make logger setup more robust and only try to initialize once.
0.1.11
- Make failures to initialize the Rust -> Python logger non-fatal.