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