[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MirageOS-devel] Cohttp and Higher Level Client

Hi all,

tl;dr I would like to create a more feature-ful and higher level http client library. Should this go into cohttp or be a separate library? I would suggest it is a separate library.

I would like to create a higher level http client to work with Async. I would excited to have this support LWT as well if others wanted to do that work. My personal needs at the moment are connection pooling, more sugar for ease of use (think ease of use of Python's Requests http://docs.python-requests.org/en/latest/), much more extensible (thinkÂhttp://www.intridea.com/blog/2012/3/12/faraday-one-http-client-to-rule-them-all). There's other things that one wants in a client library: dealing appropriately with cache headers, cookies and redirect handling that would need to be added at some point.

It seems that Cohttp's current interface is low level, and that there's already been discussion suggesting that the complexity of implementing a http client should be part of another library (https://github.com/mirage/ocaml-cohttp/issues/76).

I would suggest that I begin work on this new library because it will be quicker to get the details ironed out without taking up the current maintainers time. I would see this library's relationship to Cohttp similar to https://github.com/rgrinberg/opium.

There will need to be multiple changes to the current Cohttp Async client to support something like this, but I would try and keep those minimal, with the idea being that Cohttp stays the bedrock of http implementations for both client and servers. If at some point, it made sense to merge the efforts I'd be open to that. Also if the current maintainers feel strongly that this work should all go into Cohttp I am happy to contribute it there.

Eager to hear your thoughts. Thanks.

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.