Home | History | Annotate | Download | only in docs
      1 curl the next few years - perhaps
      2 =================================
      3 
      4 Roadmap of things Daniel Stenberg and Steve Holme want to work on next. It is
      5 intended to serve as a guideline for others for information, feedback and
      6 possible participation.
      7 
      8 HTTP/2
      9 ------
     10 
     11 Improve performance. Measurements and tests have shown that in several cases
     12 doing transfers over HTTP/2 can be notably slower than the same transfer done
     13 over HTTP/1. Some of that difference can be attributed the inefficient window
     14 size handling currently in use but there are probably more to be learned and
     15 worked on to optimize this.
     16 
     17 QUIC
     18 ----
     19 
     20 The standardization process of QUIC has been taken to the IETF and can be
     21 followed on the [IETF QUIC Mailing
     22 list](https://www.ietf.org/mailman/listinfo/quic). I'd like us to get on the
     23 bandwagon. Ideally, this would be done with a separate library/project to
     24 handle the binary/framing layer in a similar fashion to how HTTP/2 is
     25 implemented. This, to allow other projects to benefit from the work and to
     26 thus broaden the interest and chance of others to participate.
     27 
     28 TLS 1.3
     29 -------
     30 
     31 The new version of the TLS protocol is in the pipeline and will soon start to
     32 get used out in the wild. It offers some new interesting features and will
     33 need the TLS libraries to adapt and quite likely provide additional or
     34 modified APIs. libcurl needs to adapt accordingly.
     35 
     36 
     37 HTTP cookies
     38 ------------
     39 
     40 Two cookie drafts have been adopted by the httpwg in IETF and we should
     41 support them as the popular browsers will as well:
     42 
     43 [Deprecate modification of 'secure' cookies from non-secure
     44 origins](https://tools.ietf.org/html/draft-ietf-httpbis-cookie-alone-00)
     45 
     46 [Cookie Prefixes](https://tools.ietf.org/html/draft-ietf-httpbis-cookie-prefixes-00)
     47 
     48 [Firefox bug report about secure cookies](https://bugzilla.mozilla.org/show_bug.cgi?id=976073)
     49 
     50 SRV records
     51 -----------
     52 
     53 How to find services for specific domains/hosts.
     54 
     55 HTTPS to proxy
     56 --------------
     57 
     58 To avoid network traffic to/from the proxy getting snooped on. There's a git
     59 branch in the public git repository for this that we need to make sure works
     60 for all TLS backends and then merge!
     61 
     62 curl_formadd()
     63 --------------
     64 
     65 make sure there's an easy handle passed in to `curl_formadd()`,
     66 `curl_formget()` and `curl_formfree()` by adding replacement functions and
     67 deprecating the old ones to allow custom mallocs and more
     68 
     69 Third-party SASL
     70 ----------------
     71 
     72 Add support for third-party SASL libraries such as Cyrus SASL.
     73 
     74 SASL authentication in LDAP
     75 ---------------------------
     76 
     77 ...
     78 
     79 Simplify the SMTP email
     80 -----------------------
     81 
     82 Simplify the SMTP email interface so that programmers don't have to
     83 construct the body of an email that contains all the headers, alternative
     84 content, images and attachments - maintain raw interface so that
     85 programmers that want to do this can
     86 
     87 email capabilities
     88 ------------------
     89 
     90 Allow the email protocols to return the capabilities before
     91 authenticating. This will allow an application to decide on the best
     92 authentication mechanism
     93 
     94 Win32 pthreads
     95 --------------
     96 
     97 Allow Windows threading model to be replaced by Win32 pthreads port
     98 
     99 dynamic buffer size
    100 -------------------
    101 
    102 Implement a dynamic buffer size to allow SFTP to use much larger buffers and
    103 possibly allow the size to be customizable by applications. Use less memory
    104 when handles are not in use?
    105 
    106 New stuff - curl
    107 ----------------
    108 
    109 1. Embed a language interpreter (lua?). For that middle ground where curl
    110    isnt enough and a libcurl binding feels too much. Build-time conditional
    111    of course.
    112 
    113 2. Simplify the SMTP command line so that the headers and multi-part content
    114    don't have to be constructed before calling curl
    115 
    116 Improve
    117 -------
    118 
    119 1. build for windows (considered hard by many users)
    120 
    121 2. curl -h output (considered overwhelming to users)
    122 
    123 3. we have > 170 command line options, is there a way to redo things to
    124    simplify or improve the situation as we are likely to keep adding
    125    features/options in the future too
    126 
    127 4. docs (considered "bad" by users but how do we make it better?)
    128 
    129   - split up curl.1
    130 
    131 5. authentication framework (consider merging HTTP and SASL authentication to
    132    give one API for protocols to call)
    133 
    134 6. Perform some of the clean up from the TODO document, removing old
    135    definitions and such like that are currently earmarked to be removed years
    136    ago
    137 
    138 Remove
    139 ------
    140 
    141 1. makefile.vc files as there is no point in maintaining two sets of Windows
    142    makefiles. Note: These are currently being used by the Windows autobuilds
    143