forked from cpp-netlib/cpp-netlib
-
Notifications
You must be signed in to change notification settings - Fork 1
/
RATIONALE.txt
64 lines (42 loc) · 1.84 KB
/
RATIONALE.txt
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
C++ Networking Library
Goals and Scope
Objectives
----------
o Develop a high quality, portable, easy to use C++ networking library
o Enable users to easily extend the library
o Lower the barrier to entry for cross-platform network-aware C++
applications
Goals
-----
* Implement a simple message implementation which can be used in
network protocol-specific routines for inter-operability and
to provide a generic interface to manipulating network-oriented
messages.
* Implement easy to use protocol client libraries such as (but not
limited to):
- HTTP 1.0/1.1
- (E)SMTP
- SNMP
- ICMP
* Implement an easy to embed HTTP server container type that supports
most modern HTTP 1.1 features.
* Implement an efficient easy to use URI class/parser.
* Implement a fully compliant cross-platform asynchronous DNS resolver
either as a wrapper to external (C) libraries, or as hand-rolled
implementation.
* Implement a MIME handler which builds message objects from either
data retrieved from the network or other sources and create
text/binary representations from existing message objects intended
for transport over the network.
Scope
-----
* The library will provide a generic message class which is intended
to be the common message type used by the protocol libraries.
* The library will only contain client implementations for the various
supported protocols.
* The library will use only STL and Boost C++ library components,
utilities, and libraries throughout the implementation.
* The library will strive to use C++ templates and template
metaprogramming techniques in order to not require the building of
external shared/static libraries. In other words, the library will be
header-only and compliant with the C++ standard.