Releases: yigolden/KcpSharp
Releases · yigolden/KcpSharp
v0.8.8
v0.7.13
- Implement a simple KeepAlive mechanism. (Can be enabled by setting KeepAliveOptions property of KcpConversationOptions object)
- Add a new overload for WaitForReceiveQueueAvailableDataAsync.
- Cleanup usage of Task.Run() and CancellationTokenSource, cleanup IValueTaskSource implementations.
v0.6.23
v0.6.20
- Refactor core update loop. (Less allocation, Less lock contention)
- Improve packet throughput in NoDelay mode.
- Avoid deadlocks in IValueTaskSource implementations.
- Usability improvements to KcpRentedBuffer.
- Remove .NET 5 target.
- Remove obsoleted
IKcpBufferAllocator
interface.
v0.5.27
- Reduce potential async state machine allocation in
FlushCoreAsync
by using custom async method builder. (requires .NET6+) - Improve NoDelay mode.
- Set IsTrimmable property on the main project.
- Expose
Span
property onKcpRentedBuffer
. - Fix an issue where buffer could be released multiple times.
v0.4.21
- Add the new buffer pool APIs. Mark the buffer allocation APIs as obsoleted.
- Implement WaitForSendQueueAvailableSpaceAsync.
- Implement WaitForReceiveQueueAvailableDataAsync.
- Use Environment.TickCount as the current timestamp.
- FlushAsync now also waits for flushing acknowledgements.
v0.3.10
v0.3.8
- BREAKING CHANGE: IKcpTransport.SendPacketAsync signature changed.
- Conversation ID is now optional in the constructor of KcpConversation.
- Add support for pre-buffer and post-buffer in KcpConversation and KcpRawChannel.
- Add Stream adapter for KcpConversation.
- Fix KcpConversation.UnflushedBytes not returning 0 when the transport is closed.