libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.32k stars 1.84k forks source link

Improving the network library in RetroArch #10147

Open inactive123 opened 4 years ago

inactive123 commented 4 years ago

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)

LibretroAdmin commented 2 years ago

@Cthulhu-throwaway How much of this checklist can be ticked off?