korlibs / korlibs/korlibs-io-network-core

Request: Add Support for UDP Connections in KorGE "common" code.

Open
#9 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.