title: C/C++ HTTP Client Library for Embedded Projects
body: <p>So I have trawled through pages and pages of search results on StackOverflow and Google and I have come across very few C/C++ HTTP client libraries suitable for a resource-constrained, embedded environment (e.g. an ARM). I have however come across quite a few that are suitable for desktop-class applications.</p>
  
  <p>Essentially, I am after a simple, easy-to-use and convenient API to make HTTP GET, POST and HEAD calls (with support for authentication, download resume and payload compression). It would be ideal if it had a small footprint (i.e. no or minimal external dependencies) and is open-source (with a permissive license).</p>
  
  <p>Here's a list of what I've come across so far and why they are not suitable -</p>
  
  <ul>
  <li><a href="http://curl.haxx.se/libcurl/">curl</a> - too heavyweight</li>
  <li><a href="http://pocoproject.org/">poco</a> - too heavyweight</li>
  <li><a href="http://www.webdav.org/neon/">neon</a> - GPL</li>
  <li><a href="http://www.qdecoder.org/wiki/qlibc">qlibc</a> - relies on POSIX libraries</li>
  <li><a href="http://cpp-netlib.org/">cpp-netlib</a> - relies on Boost libraries</li>
  <li><a href="https://code.google.com/p/serf/">serf</a> - relies on the Apache Portable Runtime library</li>
  <li><a href="http://think-async.com/Urdl/doc/html/index.html">urdl</a> - relies on Boost libraries</li>
  <li><a href="http://chttpclient.sourceforge.net/">HTTP Client C API</a> - promising but requires a C++ wrapper</li>
  </ul>
  
  <p>Are there any libraries out there that I am unaware of or am I better off rolling my own?</p>