korlibs / korlibs/korlibs-io-network-core
Request: Add Support for UDP Connections in KorGE "common" code.
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 0
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Introduction
When supporting networking in an application, we normally have the choice between TCP and UDP connections.
TCP is more reliable, but slower, and has some algorithms that try to manage how packets are sent to optimize the bandwidth usage / network congestion.
UDP is faster, but less reliable as it does not guarantee that packets are received by the other party.
KorGE currently does not support UDP in the common code, and only provides sockets for the (slower, stable) TCP connections.
Suggestion
Implement UDP support. Either by extending WebClientSocket / adding a UDP specific socket class / creating a 'generic' builder that can switch to TCP or UDP depending on the method calls used.
Here's an example from Ktor's documentation
They use an interface that is implemented as TCPBuilder and UDPBuilder, that can be accessed from the same 'generic' socketbuilder class.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing common-code TCP socket API, especially WebClientSocket, and compare its shape with the Ktor Configurable socket-builder example linked in the issue. Determine how UDP should fit the current API before implementing it; done means common code can create and use UDP connections alongside the existing TCP support.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100