2010-06-22 2 views
9

Quali sono i vantaggi e gli svantaggi dell'utilizzo di libcurl e libsoup?Differenza tra libcurl e libsoup

Quale è meglio utilizzare per un'operazione HTTP in cui devo inviare una richiesta a un server per ottenere una risposta e ha un tempo di reazione rapido?

+0

Stai semplicemente scrivendo il codice cliente? o entrambi? –

+0

Sto solo scrivendo il codice cliente. –

risposta

4

Libsoup sta arrivando, ma libcurl ha un supporto e una stabilità molto migliori. Gli sviluppatori di zuppa Lib ammettono prontamente che probabilmente dovresti usare libcurl.

Il quarto elemento è particolarmente importante perché anche su Linux gli utenti KDE e XCF installeranno librerie relative a gnome, ma non è bello costringerli a utilizzare le librerie gnome quando è disponibile un'opzione indipendente dalla piattaforma.

  1. libcurl è (ben) più portabile
  2. libsoup manca il supporto per: NTLM per i proxy (Proxy-autenticazione :), GSS, rimorchi nelle risposte divisi in blocchi, OpenSSL
  3. libsoup offre il supporto server-side
  4. libsoup utilizza librerie relative a GNOME, rendendolo una scelta meno conveniente per ambienti non GNOME.

"Ho scoperto che libsoup è molto più lento di libcurl. Esso utilizza almeno 4 volte la quantità di CPU per trasferire un flusso di dati ad alta velocità in bit su HTTP. Attribuisco questo al eccessiva dipendenza pesante glib/costrutti di gobiettivi.Uomo, quella roba è lenta e un dolore da usare! " - Matt Gruenke

1

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

tuo probabilmente meglio attaccare con libcurl se si vuole la portabilità e la stabilità.

+0

C'è un commento anonimo su quella pagina ora che praticamente lo spunta, potrebbe valere anche quello nella tua risposta (in pratica si risparmia alla gente un clic). –

4

Stavo guardando libsoup per implementare il lato server di un'API su un progetto di hobby (stavo creando il mio router).

Nel momento in cui sono riuscito a soddisfare le dipendenze di GNOME, la semplicità del codice lato server basato sul callback non sembrava interessante come una volta. L'interfaccia è abbastanza carina, vedi soup_server_add_handler().

Se si scrivono applicazioni GNOME (quindi può già contare sulle dipendenze di GNOME che sono lì), va bene (mi sembrava lento).

Se si sta solo scrivendo codice client o qualsiasi cosa che deve funzionare in assenza di GNOME, attenersi a curl.

+2

Vale la pena aggiungere che libcurl può essere usato anche nelle applicazioni Gnome (usando il wrapper 'glibcurl'). –

0

L'utilizzo di libsoup ha causato un aumento di quasi 11 MB nel mio rootfs, dove libcurl ha aggiunto solo circa 1 MB. Questo è importante nei sistemi embedded con risorse di memoria limitate.