LadybirdBrowser / ladybird

Truly independent web browser
https://ladybird.org
BSD 2-Clause "Simplified" License
19.45k stars 787 forks source link

[Feature Request] HTTP2 and HTTP3 support #1070

Open ONLYA opened 1 month ago

ONLYA commented 1 month ago

I am surprised that no one has ever mentioned this in this project before. The world is gradually switching to HTTP3 while HTTP2 is now dominating the web. Given the performance and the security and privacy features from HTTP3 protocol, it's becoming more and more important to have HTTP3 supported. Chrome, Firefox and Safari do not have full support of HTTP3 and I think that Ladybird supports HTTP3 will form a great distinction from those. This browser is a new project in development, which means that it won't be as challenging as the other established projects to change some underlying architecture in the code without so many technical debts as the barrier.

According to the README file:

LibHTTP: HTTP/1.1 client

It seems that the HTTP library lacks of the HTTP2 and HTTP3 support. According to https://github.com/SerenityOS/serenity/issues/24672, Ladybrid can use any other third party library like https://github.com/cloudflare/quiche. Given that this is written in Rust, it's also a good example of trying to integrate Rust crate into this C++ code base as a library.

ONLYA commented 1 month ago

There is another library: https://github.com/quicsec/quicsec. This is more likely higher-level than the quiche library.

mateli commented 1 month ago

The most important feature that HTTP3 provides is higher reliability on unreliable connections which were mainly developed with the Indian market in mind. Perhaps their internet is no longer as unreliable but there are still plenty of people worldwide that have reliability problems using HTTP2.

akash153759 commented 1 month ago

Need Security update and grapic & views need change