Imported Upstream version 7.53.1
[platform/upstream/curl.git] / docs / ROADMAP.md
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 QUIC
9 ----
10
11 The standardization process of QUIC has been taken to the IETF and can be
12 followed on the [IETF QUIC Mailing
13 list](https://www.ietf.org/mailman/listinfo/quic). I'd like us to get on the
14 bandwagon. Ideally, this would be done with a separate library/project to
15 handle the binary/framing layer in a similar fashion to how HTTP/2 is
16 implemented. This, to allow other projects to benefit from the work and to
17 thus broaden the interest and chance of others to participate.
18
19 HTTP cookies
20 ------------
21
22 Two cookie drafts have been adopted by the httpwg in IETF and we should
23 support them as the popular browsers will as well:
24
25 [Deprecate modification of 'secure' cookies from non-secure
26 origins](https://tools.ietf.org/html/draft-ietf-httpbis-cookie-alone-00)
27
28 [Cookie Prefixes](https://tools.ietf.org/html/draft-ietf-httpbis-cookie-prefixes-00)
29
30 [Firefox bug report about secure cookies](https://bugzilla.mozilla.org/show_bug.cgi?id=976073)
31
32 SRV records
33 -----------
34
35 How to find services for specific domains/hosts.
36
37 curl_formadd()
38 --------------
39
40 make sure there's an easy handle passed in to `curl_formadd()`,
41 `curl_formget()` and `curl_formfree()` by adding replacement functions and
42 deprecating the old ones to allow custom mallocs and more.
43
44 Or perhaps even better: revamp the formpost API completely while we're at it
45 and making something that is easier to use and understand:
46
47  https://github.com/curl/curl/wiki/formpost-API-redesigned
48
49 Third-party SASL
50 ----------------
51
52 Add support for third-party SASL libraries such as Cyrus SASL.
53
54 SASL authentication in LDAP
55 ---------------------------
56
57 ...
58
59 Simplify the SMTP email
60 -----------------------
61
62 Simplify the SMTP email interface so that programmers don't have to
63 construct the body of an email that contains all the headers, alternative
64 content, images and attachments - maintain raw interface so that
65 programmers that want to do this can
66
67 email capabilities
68 ------------------
69
70 Allow the email protocols to return the capabilities before
71 authenticating. This will allow an application to decide on the best
72 authentication mechanism
73
74 Win32 pthreads
75 --------------
76
77 Allow Windows threading model to be replaced by Win32 pthreads port
78
79 dynamic buffer size
80 -------------------
81
82 Implement a dynamic buffer size to allow SFTP to use much larger buffers and
83 possibly allow the size to be customizable by applications. Use less memory
84 when handles are not in use?
85
86 New stuff - curl
87 ----------------
88
89 1. Embed a language interpreter (lua?). For that middle ground where curl
90    isn’t enough and a libcurl binding feels “too much”. Build-time conditional
91    of course.
92
93 2. Simplify the SMTP command line so that the headers and multi-part content
94    don't have to be constructed before calling curl
95
96 Improve
97 -------
98
99 1. build for windows (considered hard by many users)
100
101 2. curl -h output (considered overwhelming to users)
102
103 3. we have > 200 command line options, is there a way to redo things to
104    simplify or improve the situation as we are likely to keep adding
105    features/options in the future too
106
107 4. authentication framework (consider merging HTTP and SASL authentication to
108    give one API for protocols to call)
109
110 5. Perform some of the clean up from the TODO document, removing old
111    definitions and such like that are currently earmarked to be removed years
112    ago
113
114 Remove
115 ------
116
117 1. makefile.vc files as there is no point in maintaining two sets of Windows
118    makefiles. Note: These are currently being used by the Windows autobuilds