[Haskell-cafe] HTTP client libraries
nominolo at googlemail.com
Thu Mar 27 16:19:53 EDT 2008
On 27 mar 2008, at 20.08, John Goerzen wrote:
> Hi folks,
> I was recently looking for HTTP client libraries for Haskell. I
> investigated several, and it seems that there aren't any really ready
> for primetime. Am I missing anything? Here's what I found:
> * Bjorn's String-based HTTP
> It eats RAM. Does not appear to read data lazily, returns a String,
> and may have a memory leak as well. Does not appear to be suited
> for anything except very small file downloads.
> * nominolo's ByteString port of Bjorn's HTTP
> Appears to exist only in a darcs repo linked from his personal blog.
> Makes me hesitant to use it in production code, for fear that it
> won't be around long-term.
No, it also leaks handles. I am now convinced that a fold/enumerator-
based interface is the best solution but haven't gotten around to
implementing it. It also isn't particularly well-tested (closer to
not at all). It was a proof-of-concept (and to test what
improvements are possible), but we never had the time or energy to
> * tagsoup
> Broken in many ways. Does not support chunked encoding that is
> mandated by HTTP RFC. Will be incompatible with numerous HTTP
> servers, and the manual states as much. Port 80 hardcoded.
> * network-minihttp
> Doesn't appear to actually be very useful as a client.
> Also, as far as I have been able to deduce, none of these have
> built-in support for https (SSL) URLs.
> There is also a Curl binding (or two?) floating around, which I
> haven't investigated. It would be nicer to have a native Haskell
> solution. Or should I just go write one?
It would be a good summer of code project, but I don't know if
someone will apply for it. Also, if you need it right now (or want
to refer to a reliable implementation in your book) you probably
don't want to count on that to work out.
> -- John
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe