aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/restricted/uriparser/GOALS.txt
blob: 5ad29adfe8128e944a2d0562368a2eae617318fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
== Requirements == 
 (1) URI parser fully conforming to the 
     latest URI RFC. Currently this is RFC 3986: 
     http://tools.ietf.org/html/rfc3986 
 
 (2) Based on an LL(1) grammar, at least mainly. 
     Not using a jump table but one function per 
     rule instead. 
 
 (3) Library licensed under "New BSD license". 
     http://www.opensource.org/licenses/bsd-license.php 
     Test suite code licensed under LGPL. 
     http://www.opensource.org/licenses/lgpl-license.php 
 
 (4) Written in ANSI/ISO C. 
 
 (5) Portable. Must compile with GCC, MinGW, 
     Visual Studio 200[35]. 
 
 (6) "OOP-C" -> thread safe, no shared globals 
     between two parser "instances" 
 
 (7) Support for <char> and <wchar_t> without internal 
     conversion. Two versions of all functions 
     from the public interface. 
 
 (8) Doxygen Code documentation at least for all 
     interface functions and structures. 
     http://www.stack.nl/~dimitri/doxygen/index.html 
 
 (9) Sun Java code conventions for all C/C++ code. 
     http://java.sun.com/docs/codeconv/ 
 
(10) #include "xxx" for files in same folder. 
     #include <xxx> for files from include folders. 
 
(11) Use GoogleTest for unit testing. 
     https://github.com/google/googletest 
 
(12) Implement algorithm for reference resolution 
 
(13) Implement algorithm for normalization and 
     comparison 
 
== Optional goals == 
 (A) C++ Wrapper classes (uriparser++?)