Improving the network library in RetroArch
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Improving the network library in RetroArch
Description
Currently RetroArch uses the network stack provided by libretro-common to implement simple network interactions. It’s currently mainly IPv4 aware and supports only HTTP / HTTPS version 1. For TLS support we currently use the mbedtls library.
The current HTTP implementation is also not feature complete and has a lot of compatibility issues. The tasks for thus projects could involve:
Proper support for IPv6
General compatibility of the current HTTP/1 stack
HTTP/2 or even HTTP/3 support
Hardening the current TLS support
Either by extending the current implementation or by using an external, portable and small library. Not all of our targets need to be supported with these changes. Exotic build targets often don’t have network support anyway.
Further readings:
https://github.com/libretro/RetroArch/tree/master/libretro-common/net
https://github.com/libretro/RetroArch/tree/master/network
Needed knowledge:
C, Network protocols (IPv4 / IPv6 / TCP / HTTP / HTTP/2 / HTTP/3)
Contributor guide
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 implementations in libretro-common/net and network, then compare their current IPv4, HTTP/1, and mbedtls behavior with the stated compatibility goals. The scope is complete only when a defined subset of IPv6, HTTP compatibility, newer HTTP versions, or TLS hardening works across the supported targets, with unsupported exotic targets identified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100