I've been working on higher level bindings to cURL (based on ocurl), at https://github.com/c-cube/ezcurl . ``` $ dune utop src/sync # Ezcurl.get ~url:"https://ocaml.org/feed.xml" ();; - : (Ezcurl_core.response, Curl.curlCode * string) result = Ok {Ezcurl_core.code = 200; headers = [("Content-Type", "application/xml"); ("Accept-Ranges", "bytes"); ("ETag", "\"1394832364\""); ("Last-Modified", "Thu, 26 Sep 2019 13:15:03 GMT"); ("Content-Length", "402487"); ("Date", "Thu, 26 Sep 2019 13:49:00 GMT"); ("Server", "lighttpd/1.4.53")]; body = "\nhttp://ocaml.org/img/colour-icon-170x148.pngOCaml Syndic.Atom feed aggregatorurn:md5:302d717d0937d8"... (* string length 402487; truncated *); info = {Ezcurl_core.ri_response_time = 6.346256; ri_redirect_count = 0}} ``` Maybe it's a different version of GNUTLS though (I'm on archlinux, it's 3.6.9-1). -- Simon Cruanes