2010-06-22 32 views
9

Was sind die Vor- und Nachteile der Verwendung von libcurl und libsoup?Unterschied zwischen libcurl und libsoup

Welches ist besser für einen HTTP-Vorgang zu verwenden, wo ich Anfrage an einen Server senden muss, um eine Antwort zu erhalten, und hat eine kurze Reaktionszeit?

+0

Schreiben Sie gerade den Clientcode? oder beides? –

+0

Ich schreibe gerade den Client-Code. –

Antwort

4

Libsoup kommt mit, aber libcurl hat viel bessere Unterstützung und Stabilität. Lib Suppenentwickler geben bereitwillig zu, dass Sie wahrscheinlich libcurl verwenden sollten. Das vierte Element ist besonders wichtig, weil Linux-Benutzer von KDE und XCF GNOME-bezogene Bibliotheken installieren, aber es ist nicht schön, sie zu zwingen, die Gnome-Bibliotheken zu verwenden, wenn eine plattformunabhängige Option verfügbar ist.

  1. libcurl ist (noch) mehr tragbar
  2. libsoup Unterstützung fehlt: für Proxies NTLM (Proxy-Authentifizierung :), GSS, Anhänger in chunked Antworten, OpenSSL
  3. libsoup bietet serverseitige Unterstützung
  4. libsoup verwendet GNOME-bezogene libs und ist daher eine weniger bequeme Wahl für Nicht-GNOME-Umgebungen.

„Ich fand, dass libsoup weit langsamer als libcurl ist. Es zumindest nutzt die Menge der CPU 4 x High-Bitrate-Datenstrom über HTTP zu übertragen. Ich dieses Attribut auf die übermäßige Abhängigkeit von schwergewichtigen glib/Gobject Konstrukte. Man, das Zeug ist langsam und ein Schmerz zu benutzen! " - Matt Gruenke

1

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

Sie wahrscheinlich besser dran mit libcurl kleben, wenn Sie Portabilität und Stabilität wollen.

+0

Es gibt jetzt einen anonymen Kommentar auf dieser Seite, der so ziemlich buchstabiert, könnte es wert sein, das in Ihrer Antwort zu enthalten (im Grunde rettet die Leute einen Klick). –

4

Ich schaute auf libsoup, um die Serverseite einer API auf einem Hobbyprojekt zu implementieren (ich machte meinen eigenen Router).

Zu der Zeit, als ich die GNOME-Abhängigkeiten erfüllte, schien die Einfachheit des Callback-basierten Serverseitencodes nicht so attraktiv zu sein wie früher. Die Schnittstelle ist nett genug, siehe soup_server_add_handler().

Wenn Sie GNOME-Anwendungen schreiben (kann also schon darauf zählen, dass die GNOME-Abhängigkeiten da sind), ist es in Ordnung (es fühlte sich für mich träge an).

Wenn Sie gerade Client-Code schreiben, oder irgendetwas, das in Abwesenheit von GNOME funktionieren muss, bleiben Sie ruhig.

+2

Es ist hinzuzufügen, dass libcurl auch in Gnome-Anwendungen (mit 'Glibcurl'-Wrapper) verwendet werden kann. –

0

Die Verwendung von libsoup verursachte einen Anstieg von fast 11MB in meinem rootfs, wobei libcurl nur etwa 1MB hinzufügte. Dies ist wichtig in eingebetteten Systemen mit begrenzten Speicherressourcen.