August 17, 2011
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