hurl

Gopher/HTTP/HTTPS file grabber
git clone git://git.codemadness.org/hurl
Log | Files | Refs | README | LICENSE

README (1263B)


      1 hurl
      2 ====
      3 
      4 Relatively simple HTTP, HTTPS and Gopher client/file grabber.
      5 
      6 
      7 Why?
      8 ----
      9 
     10 curl is a nice swish-army knife, but it's not a very sharp tool. Every week
     11 there is a new curl CVE. Other tools like OpenBSD ftp are much better, but
     12 still do too much.
     13 
     14 Sometimes (or most of the time?) you just want to fetch a file via the HTTP,
     15 HTTPS or Gopher protocol.
     16 
     17 The focus of this tool is on security and simplicity.
     18 
     19 
     20 Dependencies
     21 ------------
     22 
     23 - LibreSSL
     24 - libtls
     25 
     26 
     27 Features
     28 --------
     29 
     30 - Uses OpenBSD pledge(2) and unveil(2). Allow no filesystem access (write to
     31   stdout).
     32 - Impose timeout and maximum size limits.
     33 - Use well-defined exitcodes for reliable scripting (curl sucks at this).
     34 - Send as little information as possible (no User-Agent etc by default).
     35 - Allow to send custom headers / header string if wanted.
     36 
     37 
     38 Anti-features
     39 -------------
     40 
     41 Not by default, but possible with custom headers:
     42 - No HTTP byte range support.
     43 - No HTTP User-Agent.
     44 - No HTTP If-Modified-Since/If-* support.
     45 - No HTTP auth support.
     46 
     47 Other:
     48 - No HTTP/2+ support.
     49 - No HTTP keep-alive.
     50 - No HTTP chunked-encoding support.
     51 - No HTTP redirect support.
     52 - No (GZIP) compression support.
     53 - No cookie-jar or cookie parsing support.
     54 
     55 - No Gopher text handling (".\r\n").
     56 
     57 - ... etc...