What is the ‘best’ http library

So we want to add a http plugin in GStreamer which is desktop neutral.
I first wanted to use libsoup, but it will start depending on gconf soon, so unfortunatly that takes it of the table.

It seems to me that Curl and Neon are the two main options to build our plugin upon. My current idea is to go with Neon, but if anyone have some good arguments for Curl or something else, please let me know :)

8 comments ↓

#1 tns on 12.17.05 at 06:37

Depending on what your exact requirements are, libxml2 has a small http module which works really well.

http://www.xmlsoft.org/html/libxml-nanohttp.html

#2 Colin on 12.17.05 at 06:43

I don’t know about neon, but libcurl has the advantage of just eating everything you throw at it without complaining, is highly tunable and has a lot of bindings.

#3 Alvaro Lopez Ortega on 12.17.05 at 06:47

http://www.0x50.org“>Cherokee is mainly a HTTP server library, but it includes a client HTTP library as well.

#4 Ben on 12.17.05 at 08:55

Neon’s used in Subversion, where it has been reliable, platform neutral, and mostly bug-free.

#5 Nelson on 12.18.05 at 01:56

I don’t know about neon, but libcurl is very powerful, it can follow redirects, let you change the referer, supports HTTPS certificates, HTTP POST, HTTP PUT, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos…), etc, and I think it’s more widely used than neon…

#6 Ziyad on 12.19.05 at 14:00

Try GNet .

I never used it myself (or any other HTTP library for that matter), but from the describtion on their web site it look very intersting.

Just wanted to be sure you have all the options under your eyes.

#7 Ziyad on 12.19.05 at 14:03

Okay, the link didn’t appear. Here it’s:
http://www.gnetlibrary.org

I hope it displays correctly this time. (Just in case it doesn’t, search Google for “GNet Library”.)

Sorry for the double post.

#8 Raphaƫl Quinet on 12.20.05 at 01:50

Regardless of which library you end up using, please make sure that it is able to read the system-wide defaults for things such as HTTP proxy address. This can include an automatic proxy configuration script or a list of “no proxy” hosts.

There is nothing that is more annoying than configuring your network proxy in GNOME or KDE and then having to make spearate changes in other applications such as Mozilla. Especially when you are behind a corporate firewall that blocks or redirects your requests when you are not using one of the mandatory proxies.