2010-06-22 2 views
9

Каковы преимущества и недостатки использования libcurl и libsoup?Разница между libcurl и libsoup

Какой из них лучше использовать для операции HTTP, где я должен отправить запрос на сервер, чтобы получить ответ, и имеет ли быстрое время реакции?

+0

Вы просто пишете код клиента? или оба? –

+0

Я просто пишу код клиента. –

ответ

4

Libsoup идет, но libcurl имеет гораздо лучшую поддержку и стабильность. Lib soup devs с готовностью признают, что вы, вероятно, должны использовать libcurl.

4-й пункт особенно важен, потому что даже на Linux пользователи KDE и XCF будут устанавливать связанные с gnome библиотеки, но неплохо заставить их использовать библиотеки gnome, когда доступна независимая от платформы опция.

  1. Libcurl является (пока) более портативным
  2. libsoup отсутствует поддержку: NTLM для прокси (Proxy-Authentication :), GSS, прицепы в блочных ответах, OpenSSL
  3. libsoup предлагает на сторону сервера поддержки
  4. libsoup использует связанные с GNOME библиотеки, что делает его менее удобным выбором для сред, не относящихся к GNOME.

«Я обнаружил, что libsoup гораздо медленнее, чем Libcurl. Он использует по крайней мере, в 4 раза количество CPU для передачи с высоким битрейтом потока данных через HTTP. Я отношу это к чрезмерной зависимости от тяжеловесных бойкий/gobject. Человек, этот материал медленный и боль в использовании! " - Matt Gruenke

1

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

Вы, вероятно, лучше придерживаться Libcurl, если вы хотите, портативность и стабильность.

+0

На этой странице есть анонимный комментарий, который в значительной степени объясняет это, возможно, стоит включить это в ваш ответ (в основном, это позволяет людям щелкнуть). –

4

Я искал libsoup для реализации серверной части API в проекте хобби (я делал свой собственный маршрутизатор).

К тому времени, как я получил удовлетворение зависимостей GNOME, простота обратного кода на стороне сервера не казалась такой привлекательной, как когда-то. Интерфейс достаточно хорош, см. soup_server_add_handler().

Если вы пишете приложения GNOME (таким образом, уже можете рассчитывать на зависимости GNOME), все в порядке (для меня это было медлительно).

Если вы просто пишете код клиента или что-либо, что должно работать в отсутствие GNOME, придерживайтесь завитка.

+2

Стоит добавить, что libcurl также может использоваться в приложениях Gnome (с использованием оболочки glibcurl). –

0

Использование libsoup вызвало увеличение почти 11 МБ в моих rootfs, где libcurl добавлен только в 1 МБ. Это важно во встроенных системах с ограниченными ресурсами хранения.

Смежные вопросы