Skip to content
This repository
Newer
Older
100644 96 lines (67 sloc) 3.208 kb
8f0a78f5 » Loïc Hoguin
2012-02-27 Add a roadmap
1 ROADMAP
2 =======
3
4 This document explains in as much details as possible the
5 list of planned changes and work to be done on the Cowboy
6 server. It is non-exhaustive and subject to change. Items
7 are not ordered.
8
9 * Write more, better examples.
10
11 The first step would be to port misultin's examples
12 to Cowboy. Then these examples could be completed with
13 examples for Cowboy specific features.
14
15 The extend/cowboy_examples is to be used for this. As
16 it is a separate repository, we can organize the file
17 structure as appropriate. Ideally we would have one
18 complete example per folder.
19
20 Examples should be commented. They may or may not be
21 used for writing the user guides.
22
23 * Write user guides.
24
25 We currently have good API documentation, but no step
26 by step user guides.
27
28 * Write more, better tests.
29
30 Amongst the areas less tested there is protocol upgrades
31 and the REST handler.
32
33 Current tests should be completed with unit tests
34 where applicable. We should probably also test the
35 dependencies used, like erlang:decode_packet/3.
36
37 While eunit and ct tests are fine, some parts of the
38 code could benefit from PropEr tests.
39
40 * Continuous performance testing.
41
42 Initially dubbed the Horse project, Cowboy could benefit
43 from a continuous performance testing tool that would
44 allow us to easily compare the impact of the changes we
45 are introducing, similar to what the Phoronix test suite
46 allows.
47
48 Depending on the test it may be interesting to compare
49 Cowboy to other servers and eventually take ideas from
50 the servers that outperform Cowboy for the task being tested.
51
52 * Improve HTTP/1.0 support.
53
54 Most of the work on Cowboy has been done with HTTP/1.1
55 in mind. But there is still a need for HTTP/1.0 code in
56 Cowboy. The server code should be reviewed and tested
57 to ensure compatibility with remaining HTTP/1.0 products.
58
59 * Complete the work on Websockets.
60
61 Now that the Autobahn test suite is available (make inttests),
62 we have a definite way to know whether Cowboy's implementation
63 of Websockets is right. The work can thus be completed. The
0c2e2224 » Loïc Hoguin
2012-05-23 Update version to 0.6.0
64 remaining task is proper UTF8 handling.
8f0a78f5 » Loïc Hoguin
2012-02-27 Add a roadmap
65
66 * SPDY support.
67
68 While SPDY probably won't be added directly to Cowboy, work
69 has been started on making Cowboy use SPDY.
70
71 * Transport upgrades.
72
73 Some protocols allow an upgrade from TCP to SSL without
74 closing the connection. This is currently not possible
75 through the Cowboy API.
76
77 * Resizing the acceptor pool.
78
79 We should be able to add more acceptors to a pool but also
80 to remove some of them as needed.
81
82 * Simplified dispatch list.
83
84 For convenience purposes, the dispatch list should allow
85 lists instead of binaries. The lists can be converted to
86 binary by Cowboy at listener initialization.
87
88 There has also been discussion on allowing the dispatch
89 list to be hierarchical.
90
91 * Add Transport:secure/0.
92
93 Currently Cowboy checks if a connection is secure by
94 checking if its name is 'ssl'. This isn't a very modular
95 solution, adding an API function that returns whether
96 a connection is secure would fix that issue.
Something went wrong with that request. Please try again.