dlang-requests 0.1.7 released

ikod via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Jun 17 10:31:55 PDT 2016


On Tuesday, 14 June 2016 at 14:59:37 UTC, Andrei Alexandrescu 
wrote:
> On 6/11/16 7:03 PM, ikod wrote:
>> Hello,
>>
>> Dlang-requests is library created under influence of 
>> Python-requests,
>> with primary goal of easy to use and performance.
>>
...
>
> Thanks! Does the project have a dub presence? How does it 
> compare feature-wise and speed-wise with curl? -- Andrei

Hello,

Finally, I made some improvements and run minimal performance 
tests against command-line curl. I wrote simple code for file 
download using dlang-requests, run it and curl for the same 
urls(httpbin server on my notebook) and compare "total", 
"system", and "user" time for different cases. You can find 
numbers and code below.
So my conclusion is - performances are comparable for these 
cases, but there is some field for improvement in dlang-requests.

Case 1 - 50Mb of random data, no any encoding
Case 2 - 50Mb of random data, transfer chunked
Case 3 - 50Mb of random data, transfer chunked, content gzip

           measured times, sec
-----------------------------------------
      |   user    |   system  |   total
  Case|-----------|-----------|-----------
      | d-r | curl|  d-r| curl| d-r | curl
-----|-----|-----|-----|-----|-----|-----
   1  | 0.17| 0.14| 0.20| 0.32| 51.7| 52.2
   2  | 0.19| 0.11| 0.15| 0.21| 51.8| 51.9
   3  | 0.21| 0.15| 0.11| 0.15| 51.5| 52.1


import std.stdio;
import requests;

pragma(lib, "ssl");
pragma(lib, "crypto");

void main()
{
     auto sink = File("/dev/null", "wb");
     auto rq = Request();
     rq.useStreaming = true;
     auto rs = 
rq.get("http://127.0.0.1:8080/stream-bytes/51200000");
     auto stream = rs.receiveAsRange();
     while(!stream.empty) {
         sink.rawWrite(stream.front);
         stream.popFront;
     }
}



More information about the Digitalmars-d-announce mailing list