Simple HTTP support

Jonas Drewsen jdrewsen at nospam.com
Fri Feb 25 08:36:06 PST 2011


On 25/02/11 16.01, Andrei Alexandrescu wrote:
> On 2/25/11 8:48 AM, Jonas Drewsen wrote:
>> Hi,
>>
>> My first post here so I don't know if this is the right place.
>>
>> I like how phobos is coming along but really miss a HTTP client and I
>> think it should be a part of the standard library.
>>
>> Is anyone working on this currently?
>>
>> Any thoughts/heads-up if I decide to go ahead an implement it myself
>> e.g. regarding ranges and other stuff?
>>
>> Is it at all possible to get such thing accepted in phobos if someone
>> implemented it (and the quality is good enough)?
>>
>> Thanks
>> Jonas
>
> Here's what I think would be great to do:
>
> 1. A declarations module for libcurl. We'd put that in etc. You wouldn't
> even need to go through the review process, the need and the benefits
> are obvious. Nobody has had a chance to do that yet.

Libcurl declarations could be a way forward. As far as I can see from 
the phobos makefiles there really isn't any dependencies on anything 
other than standard system libraries and zlib. In order to support the 
full curl API the following libs are listed as optional dependencies.

I guess it would not be a good idea to include the source for all these 
like it is done with zlib in etc. So how should this be handled? Should 
all optional deps just be opted out? Alternatively they could be 
statically linked in the binary distribution of phobos?

Optional dependencies:
   *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS or PolarSSL
   *2 = requires OpenLDAP
   *3 = requires a GSSAPI-compliant library, such as Heimdal or similar.
   *4 = requires FBopenssl
   *5 = requires a krb4 library, such as the MIT one or similar.
   *6 = requires c-ares
   *7 = requires OpenSSL or NSS, as GnuTLS only supports SSLv3 and TLSv1
   *8 = requires libssh2
   *9 = requires OpenSSL, GnuTLS, NSS or yassl

> 2. An API design that is safe (libcurl uses void* and unsafe idioms all
> over the API) based on libcurl and integrates well with the rest of
> Phobos. This would ideally be discussed prior to implementation and will
> need to go through a review.

Do you see this as being based on 1?

> If you do 1, it would be an awesome good step forward.

I'll have to see how hard it would be :)

/Jonas


More information about the Digitalmars-d mailing list