[haiku-development] Re: gsoc2010: Replicating functionality of cURL

  • From: Stephan Assmus <superstippi@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Wed, 17 Mar 2010 10:52:47 +0100

Hi,

On 2010-03-17 at 06:39:19 [+0100], Varrun Ramani <varrunr@xxxxxxxxx> wrote:
> I am interested in contributing to Haiku. I have downloaded the source and
> built it and run it with qemu. I have also submitted a simple patch.
> 
> I was going through the ideas list for GSOC 2010, and was interested in
> http://www.haiku-os.org/community/gsoc/2010/ideas#network , the idea
> relating to "Create C++ network stack class framework". Since i have
> experience coding in C++, I wish to start upon this. I would like to clear a
> few doubts i had.
> 
> Since we would be replicating functionality of curl, what features are being
> targeted to be implemented first i.e which protocols(HTTP,FTP, etc.) should
> it support and what all authentication modes(Kerberos, NTLM , etc) are
> targeted? Why not just use libcurl? I also wish to know if there any other
> details I am missing. How can i start off with the project and can anyone
> mentor me for the same?

The idea being listed stems from my work on the WebKit browser. In WebCore, 
various "network" backend implementations exist, including a cURL backend. No 
other port uses the cURL backend anymore, except for Haiku, as far as I am 
aware. The advantage of the other ports is a much more fine-grained control 
over network requests. Maybe it is possible to achieve the same with cURL, 
but it may or may not need a lot of work to overcome some current limitations 
like missing asynchronous requests and perhaps more. Unfortunately I haven't 
looked deeply into the issue. The networking backends of the other port are 
probably a good example of what is needed. Ryan mentioned the Chromium 
backend, personally I've only looked at the Qt backend. Both backends also 
offer transparent local caching of network data. I suppose the Qt framework 
is a good design and the Haiku class framework should be similar. Maybe the 
Chromium design is even better. The first task is to look at the requirements 
of the web browser and other networked applications and digest the existing 
frameworks to destill the best design.

Best regards,
-Stephan

Other related posts: