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 complete it.
* 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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe