Thread overview | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
June 11, 2016 dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Hello, Dlang-requests is library created under influence of Python-requests, with primary goal of easy to use and performance. It provide interfaces for HTTP(S) and FTP requests. You can tune request details, but for most cases you will need single and simple API call. Latest release added streaming content from server and some performance improvements (avoiding some of unnecessary buffer copying). Code and docs available at https://github.com/ikod/dlang-requests or as dub package. Thanks Dlang authors and community for excellent language. |
June 12, 2016 Re: dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Posted in reply to ikod | Voting for making requests replacement of curl! |
June 12, 2016 Re: dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Posted in reply to ikod | On Saturday, 11 June 2016 at 23:03:52 UTC, ikod wrote:
> Hello,
>
> Dlang-requests is library created under influence of Python-requests, with primary goal of easy to use and performance.
>
> It provide interfaces for HTTP(S) and FTP requests. You can tune request details, but for most cases you will need single and simple API call.
>
> Latest release added streaming content from server and some performance improvements (avoiding some of unnecessary buffer copying).
>
> Code and docs available at https://github.com/ikod/dlang-requests or as dub package.
>
> Thanks Dlang authors and community for excellent language.
Hi, this is great project, but what about vibe.d compatibility?
|
June 13, 2016 Re: dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Posted in reply to Alexander Milushev | On Sunday, 12 June 2016 at 22:37:34 UTC, Alexander Milushev wrote:
> On Saturday, 11 June 2016 at 23:03:52 UTC, ikod wrote:
>> Hello,
>>
>> Dlang-requests is library created under influence of Python-requests, with primary goal of easy to use and performance.
>>
>> It provide interfaces for HTTP(S) and FTP requests. You can tune request details, but for most cases you will need single and simple API call.
>>
>> Latest release added streaming content from server and some performance improvements (avoiding some of unnecessary buffer copying).
>>
>> Code and docs available at https://github.com/ikod/dlang-requests or as dub package.
>>
>> Thanks Dlang authors and community for excellent language.
>
> Hi, this is great project, but what about vibe.d compatibility?
This project doesn't depend on vibe.d, and I'm not sure if it can be directly used from inside vibe.d application, as it use blocked socket io.
|
June 13, 2016 Re: dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Posted in reply to ikod | On Monday, 13 June 2016 at 00:09:12 UTC, ikod wrote:
> On Sunday, 12 June 2016 at 22:37:34 UTC, Alexander Milushev wrote:
>> On Saturday, 11 June 2016 at 23:03:52 UTC, ikod wrote:
>>> [...]
>>
>> Hi, this is great project, but what about vibe.d compatibility?
>
> This project doesn't depend on vibe.d, and I'm not sure if it can be directly used from inside vibe.d application, as it use blocked socket io.
Yeah, I understood, but is it possible to add support of vibe.d sockets too?
|
June 13, 2016 Re: dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Posted in reply to Alexander Milushev | On Monday, 13 June 2016 at 08:29:28 UTC, Alexander Milushev wrote: > On Monday, 13 June 2016 at 00:09:12 UTC, ikod wrote: >> On Sunday, 12 June 2016 at 22:37:34 UTC, Alexander Milushev wrote: >>> On Saturday, 11 June 2016 at 23:03:52 UTC, ikod wrote: >>>> [...] >>> >>> Hi, this is great project, but what about vibe.d compatibility? >> >> This project doesn't depend on vibe.d, and I'm not sure if it can be directly used from inside vibe.d application, as it use blocked socket io. > > Yeah, I understood, but is it possible to add support of vibe.d sockets too? If you want to use requests from vibe.d application then this probably can be done using https://github.com/rejectedsoftware/vibe.d/wiki#integrating-non-vibed-io But this require writing some wrapper. I can investigate this in the future. Thanks! |
June 14, 2016 Re: dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Posted in reply to ikod | 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.
>
> It provide interfaces for HTTP(S) and FTP requests. You can tune request
> details, but for most cases you will need single and simple API call.
>
> Latest release added streaming content from server and some performance
> improvements (avoiding some of unnecessary buffer copying).
>
> Code and docs available at https://github.com/ikod/dlang-requests or as
> dub package.
>
> Thanks Dlang authors and community for excellent language.
Thanks! Does the project have a dub presence? How does it compare feature-wise and speed-wise with curl? -- Andrei
|
June 14, 2016 Re: dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | 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 ... >> Code and docs available at https://github.com/ikod/dlang-requests or as >> dub package. >> >> Thanks Dlang authors and community for excellent language. > > Thanks! Does the project have a dub presence? How does it compare feature-wise and speed-wise with curl? -- Andrei Yes, it is in the dub repository under name "requests" As for speed comparison, I'll post numbers in a day or two, when I'll finish some performance improvements. Feature matrix for libcurl(per https://curl.haxx.se/docs/features.html) and dlang-requests: https://github.com/ikod/dlang-requests/blob/master/docs/matrix.txt Please note, that dlang-requests supports only http,https and ftp. |
June 14, 2016 Re: dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Posted in reply to ikod | On Tuesday, 14 June 2016 at 22:46:00 UTC, ikod wrote: > 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 > ... >>> Code and docs available at https://github.com/ikod/dlang-requests or as >>> dub package. >>> >>> Thanks Dlang authors and community for excellent language. >> >> Thanks! Does the project have a dub presence? How does it compare feature-wise and speed-wise with curl? -- Andrei > > Yes, it is in the dub repository under name "requests" > As for speed comparison, I'll post numbers in a day or two, when I'll finish some performance improvements. > > Feature matrix for libcurl(per https://curl.haxx.se/docs/features.html) and dlang-requests: https://github.com/ikod/dlang-requests/blob/master/docs/matrix.txt Please note, that dlang-requests supports only http,https and ftp. No worries - `std.net.curl` doesn't expose all the exotic protocols that libcurl supports either ;-) Same goes for the features, it's more interestingly to see what std.net.curl exposes to the user: http://dlang.org/phobos/std_net_curl.html |
June 17, 2016 Re: dlang-requests 0.1.7 released | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | 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; } } |
Copyright © 1999-2021 by the D Language Foundation