Skip to content

Commit 3bf7c60

Browse files
author
mikhail_beris
committed
Adding RATIONALE documentation which contains objectives, goals, and scope of the library.
1 parent 46a3cba commit 3bf7c60

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

RATIONALE

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
C++ Networking Library
2+
Goals and Scope
3+
4+
5+
Objectives
6+
----------
7+
8+
o Develop a high quality, portable, easy to use C++ networking library
9+
10+
o Enable users to easily extend the library
11+
12+
o Lower the barrier to entry for cross-platform network-aware C++
13+
applications
14+
15+
16+
Goals
17+
-----
18+
19+
* Implement a simple message implementation which can be used in
20+
network protocol-specific routines for inter-operability and
21+
to provide a generic interface to manipulating network-oriented
22+
messages.
23+
24+
* Implement easy to use protocol client libraries such as (but not
25+
limited to):
26+
27+
- HTTP 1.0/1.1
28+
- (E)SMTP
29+
- SNMP
30+
- ICMP
31+
32+
* Implement an efficient easy to use URI class/parser.
33+
34+
* Implement a fully compliant cross-platform asynchronous DNS resolver
35+
either as a wrapper to external (C) libraries, or as hand-rolled
36+
implementation.
37+
38+
* Implement a MIME handler which builds message objects from either
39+
data retrieved from the network or other sources and create
40+
text/binary representations from existing message objects intended
41+
for transport over the network.
42+
43+
44+
Scope
45+
-----
46+
47+
* The library will provide a generic message class which is intended
48+
to be the common message type used by the protocol libraries.
49+
50+
* The library will only contain client implementations for the various
51+
supported protocols.
52+
53+
* The library will use only STL and Boost C++ library components,
54+
utilities, and libraries throughout the implementation.
55+
56+
* The library will strive to use C++ templates and template
57+
metaprogramming techniques in order to not require the building of
58+
external shared/static libraries. In other words, the library will be
59+
header-only and compliant with the C++ standard.
60+
61+

0 commit comments

Comments
 (0)