From: Jose <jm...@gm...> - 2007-06-04 07:08:03
|
Hi, I would like to get a basic agreement on the goals and roadmap, so that we can choose where to contribute and avoid duplicating effort. Pls send me your comments so that we can get a more concrete document General library goals =============== - Performance (do not pay for what you don't use) I think this is a goal for many C++ libraries and it is specially important for a c++ network library - Reusability of protocol classes Already discussed. Very important to the protocol designer - Protocol conformance I think this is key for the success of the library. There are many protocol implementations out there and what really hampers them is that they provide a partial implementation, which looks like a proof of concept but not a complete one. So, whatever protocols are choosen (client or/and server side), they should be fully implemented otherwise users will fork their own implementations (which is fine but contradicts the value of a library) Below is a basic list of protocols (which should be in order of priority). It has already been stated in the mailing list that the library goal is to provide reusable protocol development components and a few protocol implementations. Applications like web server or email server could be provided but it is not a goal to provide competitive application implementations. Protocol Roadmap ============== * HTTP 1.0 client - URI parser - request object - reply parser * SMTP client - pls send the list of key features * HTTP 1.1 client - cookies - gzip - multipart mime - easy interface to async DNS * HTTPS * ESMTP client * HTTP 1.0 server * HTTP 1.1 server * ESMTP server Example Applications ================ Web server, email server, ... Pls send your comments regards jose |
From: Jose <jm...@gm...> - 2007-06-04 07:13:26
|
Hi Dean, I've copied your doc here so that comments can be provided inline and the doc can be merged with the doc I sent a few minutes after you. I will comment on your doc in a separate message ====================================================================================== 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 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. On 6/4/07, Jose <jm...@gm...> wrote: > > > Hi, > > I would like to get a basic agreement on the goals and roadmap, so that we > can choose where to contribute and avoid duplicating effort. Pls send me > your comments so that > we can get a more concrete document > > General library goals > =============== > > - Performance (do not pay for what you don't use) > I think this is a goal for many C++ libraries and it is specially > important for a c++ network library > > - Reusability of protocol classes > Already discussed. Very important to the protocol designer > > - Protocol conformance > I think this is key for the success of the library. There are many > protocol implementations out there and what really hampers them is that they > provide a partial implementation, which looks like a proof of concept but > not a complete one. So, whatever protocols are choosen (client or/and server > side), they should be fully implemented otherwise users will fork their own > implementations (which is fine but contradicts the value of a library) > > Below is a basic list of protocols (which should be in order of priority). > It has already been stated in the mailing list that the library goal is to > provide reusable protocol development components and a few protocol > implementations. Applications like web server or email server could be > provided but it is not a goal to provide competitive application > implementations. > > Protocol Roadmap > ============== > > * HTTP 1.0 client > - URI parser > - request object > - reply parser > * SMTP client > - pls send the list of key features > * HTTP 1.1 client > - cookies > - gzip > - multipart mime > - easy interface to async DNS > * HTTPS > * ESMTP client > * HTTP 1.0 server > * HTTP 1.1 server > * ESMTP server > > Example Applications > ================ > > Web server, email server, ... > > > Pls send your comments > > regards > jose > |
From: Dean M. B. <mik...@gm...> - 2007-06-04 09:05:04
|
Hi Jose! On 6/4/07, Jose <jm...@gm...> wrote: > Hi Dean, > > I've copied your doc here so that comments can be provided inline and the > doc can be merged with the doc I sent a few minutes after you. > I will comment on your doc in a separate message > Thank you very much! I like the list you also posted, it is very much appreciated. :) -- Dean Michael C. Berris http://cplusplus-soup.blogspot.com/ mikhailberis AT gmail DOT com +63 928 7291459 |