/[axel]/trunk/ROADMAP
ViewVC logotype

Contents of /trunk/ROADMAP

Parent Directory Parent Directory | Revision Log Revision Log


Revision 120 - (hide annotations) (download)
Thu Jan 7 23:36:06 2010 UTC (3 years, 4 months ago) by phihag-guest
File size: 4888 byte(s)
Add PO-Revision-Date header to ru.po
1 phihag-guest 116 Roadmap for Axel v2
2     ===================
3    
4 phihag-guest 120 * Replace old gettext with new one
5 phihag-guest 116 * Check if strrstr is provided by environment
6 phihag-guest 117 * Use SI prefixes
7 phihag-guest 116
8 phihag-guest 51 Roadmap for Axel v3
9     ===================
10    
11     Note: This document provides only a rough overview what to do next. Refer to the bugtracker ( https://alioth.debian.org/tracker/?group_id=100070&atid=413085 ) for detailled information.
12 phihag-guest 55 Pre-release version numbers of Axel 3 will start with 2.99. Starting with the 3.x series, the following version scheme will be adopted:
13 phihag-guest 51
14 phihag-guest 55 x.y.z
15    
16     x: Complete overhaul of the code structure
17     y: New features and/or speed/size improvements
18     z: Bug fixed
19    
20 phihag-guest 51 Features
21     ========
22    
23     * HTTP authentication (#310785)
24     This is actually already implemented and should be documented. Using -H is possible, too.
25    
26     * Metalink (#310625)
27     Basic Metalink support should not be that difficult. However, it will only be compiled if METALINK is defined. Metalink support will require libxml2. As libmetalink is currently unusable for us (private symbols), we'll implement the format ourselves.
28    
29     * .netrc (#310635)
30     There are lots of GPLed implementations flying around. To minimize code size, it shouldn't be compiled in by default if the code exceeds a couple of bytes. Anyway, it's just one call from Axel's point of view.
31    
32     * Prevent connection to same server (#310638)
33     See tcp.c below for the implementation (aside from a flag in the configuration and a cli flag).
34    
35     * Force overriding state file (#311022)
36     Shouldn't be difficult and take more than a couple of bytes.
37    
38     * SSL protocols (HTTPS, FTPS) (#311163)
39    
40     * Parse Content-Disposition header (#311101)
41     Look if the specific problem mentioned in the bug is fixed by this.
42    
43     Code structure
44     ==============
45    
46     * conn.c
47     needs cleanup, possibly even elimination. Most functions look like
48     if (ftp && !proxy) {
49     // ... do FTP stuff (15 lines)
50     } else {
51     // ... do HTTP stuff (20 lines)
52     }
53     We should at least abstract the switch between HTTP and FTP and look what can be done about simplifiying and documenting the functions here.
54    
55     Furthermore, redirecting should be cached somehow/done only once lest we reach the redirect limit because it's less than -n.
56     * tcp.c
57     should be checked. The functions look a little bit obscure to me. But maybe, that's just me. Before we implement #310638, we should include some round-robin trickery in here.
58     * Removing MAX_STRING(#311085) and MAX_ADD_HEADERS. These are arbitrary restrictions and may hide a number of strange bugs. Furthermore, statically sized fields are a waste of memory.
59     * Add die messages: Axel must not exit with != 0 without telling why.
60     * Add debugging messages: When compiled with DEBUG, Axel could be more verbose. This won't harm anything and may serve as comments.
61     * Some functions could use a little bit of documentation.
62     * Remove all logic from text.c
63     * Ensure correct synchronization of thread state (volatile?)
64     * Cleanup AXEL_LEGACY
65 phihag-guest 98 * rewrite axel-kapt to be sane (probably sh, or even #!/usr/bin/env kaptain suffices) or remove it in favor of a sane GUI
66 phihag-guest 51
67     Bugs
68     ====
69    
70     We're gonna fix them all!
71     #310979 seems pretty vague.
72    
73     Check spaces in FTP and HTTP URLs
74    
75     (User) Documentation
76     ====================
77    
78     * As previously mentioned, authentication should be documented.
79     * Update API
80    
81     3.1
82     ===
83    
84     * Cookies (#310835)
85     Can be implemented via -H. The bug called for reading the Netcape-style cookies.txt (Wget's --load--cokies option). Domain-specific cookies could be rather complex to implement. If the implementation of this feature costs more than 100B, it should be deselectable.
86     * Rate-limit status messages (#TODO)
87 phihag-guest 55 * Don't discard first HTTP connection, but use it adaptively (start requests from the end, RST as soon as first task is fullfilled)
88     * A -1 option: Just make one request, and only one.
89     * IPv6 support
90 phihag-guest 51
91 phihag-guest 55 3.2
92     ===
93    
94     * Write a macro ERROR_MESSAGE(msg) (msg), enclose all _("some long error message") and offer a compilation option for a single error message, see if that yields any size improvements
95     * Check compilation with dietlibc(http://www.fefe.de/dietlibc/) and uclibc(http://www.uclibc.org/):
96     · How to compile with these libraries
97     · Does this actually improve the binary size?
98     · Check warnings/suggestions
99     * valgrind and friends
100     * Test very large -n values. Check pthread thread stack size.
101    
102 phihag-guest 51 Future/Ideas
103     ============
104    
105     * Real FTPS (AUTH)?
106 phihag-guest 55 * Allow downloading to /dev/null for debugging or speed test purposes (Statefile in memory or so)
107 phihag-guest 51 * Desktop integration, look who likes download accelerators
108     * Check the syscalls we make. Check whether timing and read() calls can be optimized
109     * Write automated tests to test all these nifty corner cases. Either a test webserver or LD_PRELOAD injection of all syscalls (see libfake*)
110     * Write a helper script that displays the final binary size for different configurations to determine what a particular feature costs
111 phihag-guest 55 * Document and implement coding conventions, versioning scheme

  ViewVC Help
Powered by ViewVC 1.1.5