2010-06-22 11 views
9

¿Cuáles son las ventajas y desventajas de usar libcurl y libsoup?Diferencia entre libcurl y libsoup

¿Cuál es mejor usar para una operación HTTP donde tengo que enviar una solicitud a un servidor para obtener una respuesta, y tiene un tiempo de reacción rápido?

+0

¿Estás escribiendo el código del cliente? ¿o ambos? –

+0

Estoy escribiendo el código del cliente. –

Respuesta

4

Libsoup está llegando, pero libcurl tiene mucho mejor soporte y estabilidad. Los desarrolladores de sopa Lib admiten fácilmente que probablemente deberías estar usando libcurl.

El 4º elemento es especialmente importante porque incluso en Linux los usuarios de KDE y XCF instalarán libs relacionados con gnome, pero no es bueno obligarlos a usar las bibliotecas gnome cuando hay una opción independiente de plataforma disponible.

  1. libcurl es (mucho) más portátil
  2. libsoup carece de soporte para: NTLM para servidores proxy (Proxy-Authentication :), GSS, remolques en las respuestas fragmentadas, OpenSSL
  3. libsoup ofrece soporte del lado del servidor
  4. libsoup está utilizando libs relacionadas con GNOME, por lo que es una opción menos conveniente para entornos que no son de GNOME.

"He descubierto que libsoup es mucho más lento que libcurl. Se utiliza al menos 4 veces la cantidad de CPU para transferir una corriente de datos de alta velocidad de bits a través de HTTP. Lo atribuyo a la dependencia excesiva de peso pesado simplista/Gobject construye. Hombre, esas cosas son lentas y ¡un dolor de usar! " - Matt Gruenke

1

http://curl.haxx.se/libcurl/libsoup.html

Su probablemente mejor de pegarse con libcurl si quieres portabilidad y estabilidad.

+0

Hay un comentario anónimo en esa página ahora que más o menos lo explica, podría valer la pena incluir eso en tu respuesta (básicamente, ahorra un clic a la gente). –

4

Estaba buscando en libsoup para implementar el lado del servidor de una API en un proyecto de hobby (estaba haciendo mi propio enrutador).

Para cuando terminé de satisfacer las dependencias de GNOME, la simplicidad del código del lado del servidor basado en la devolución de llamada no parecía tan atractiva como lo era antes. La interfaz es lo suficientemente agradable, vea soup_server_add_handler().

Si escribe aplicaciones de GNOME (por lo tanto, ya puede contar con las dependencias de GNOME allí), está bien (se sentía lento, para mí).

Si solo está escribiendo código de cliente, o cualquier cosa que tenga que funcionar en ausencia de GNOME, quédese en curl.

+2

Vale la pena agregar que libcurl también se puede usar en aplicaciones Gnome (usando el envoltorio 'glibcurl'). –

0

El uso de libsoup causó un aumento de casi 11MB en mis rootfs, donde libcurl solo agregó alrededor de 1MB. Esto es importante en sistemas integrados con recursos de almacenamiento limitados.