www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - etc.curl: Formal review begin

Now that Lars Kyllingstad's new and improved std.path has passed the 
vote  – congratulations, Lars! –, and Jose Armando Garcia, the author of 
the proposed logging module, is currently not available, the etc.curl 
module by Jonas Drewsen is at the front of the review queue. I have 
volunteered to run the formal process for inclusion with Phobos.

etc.curl provides a high-level interface to client-side networking 
functionality for the HTTP, FTP and SMTP protocols by wrapping libcurl 
[1], accessing the C interface of which is already possible using Phobos 
in the form of etc.c.curl. Prior stages of the work have already been 
discussed in March [2], May [3], and June [4]. Thanks to everybody who 
took the time to evaluate the library back then; as far as I am aware, 
all raised concerns have been addressed since then.

Based on the amount of discussion this module already underwent, I 
hereby propose a two-week review period. Barring any objections, the 
review starts today (Aug 18) and ends on Aug 31, followed by a one week 
vote (Sep 1 - Sep 7).

Code:
   https://github.com/jcd/phobos/blob/curl-wrapper/etc/curl.d

API documentation:
   http://freeze.steamwinter.com/D/web/phobos/etc_curl.html

A discussion on the wrapper has already been started on digitalmars.D 
[5]. To keep everything in one place, please post your comments and 
reviews there.

At this point, I would like to invite everyone to spend some time 
testing the module and reading its documentation and code. It is 
essential for a working open source code review process that many people 
participate in it, and regardless of whether you are new to D or a 
seasoned contributor, your opinion is very valuable.

Jonas also asked us to have a look at the list of known issues (which 
can also be found at the top of the source file), and, if possible, 
suggest a solution:

---
Known issues:
  * DDoc is not generated where the mixins ByLineAsync, ByLineSync, 
ByChunkAsync and ByLineSync are used. This seems to be a limitation of 
ddoc - suggestions on how to circumvent this appreciated.

Possible improvements:
  * Progress may be deprecated in the future. Maybe implement a replacement.
  * Support typed http headers - (Johannes Pfau)
---

To make sure it doesn't get lost, let me also repeat Johannes Pfau's 
request to add proxy support from another thread ([6]) here.

Thanks a lot for your reviewing efforts,
David



[1] http://curl.haxx.se/libcurl/
[2] 
http://www.digitalmars.com/d/archives/digitalmars/D/Curl_support_RFC_131753.html
[3] 
http://www.digitalmars.com/d/archives/digitalmars/D/Curl_wrapper_136372.html
[4] 
http://www.digitalmars.com/d/archives/digitalmars/D/Curl_wrapper_round_two_138945.html
[5] 
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=142661
[6] 
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=142175
Aug 17 2011