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.
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)