cURL / Mailing Lists / curl-library / Single Mail


Re: Project hiper - High Performance libcurl

From: Cory Nelson <>
Date: Thu, 10 Nov 2005 01:30:14 -0800

On 11/10/05, Daniel Stenberg <> wrote:
> On Wed, 9 Nov 2005, Cory Nelson wrote:
> > the API outlined at the hiper website is far too *nix specific and
> > absolutely does not complement IOCP. We all love *nix but ignoring the
> > majority OS can't be done on such a widely used library.
> First, I'm certainly not ruling out that we adjust the suggested API to better
> fit Windows. I'm trying hard to reshuffle my old grumpy brain to come up with
> ideas that will glue all these thoughts together.
> That said, I think the current suggestion is still an improvement over the
> "old" one, be it unix-centric or not. Since libcurl is currently already
> deployed by many windows programs, I don't think we can call that "igoring the
> majority OS". (Although I don't think Windows is the majority OS for libcurl.)

By ignoring, I meant in regard to the hiper interface. I use libcurl
in some Windows applications myself, so I know full well you haven't
ignored the OS.

> The API must be written to (be allowed to) work the same on *nix and Windows
> for the app, but possibly use different underlying mechanisms. The whole point
> of using libcurl is very often that you can do the app logic identical for
> several OSes as libcurl works the same and have the same API regardless of
> what OS it runs on.

I'm glad we can agree on something :)

> Those of us who are involved in core development of libcurl only have and use
> a small subset of all the platforms libcurl is used on. But we don't need to
> have nor use the other platforms since working out how to do sockets on them
> is fairly easy. Requiring that we should add thread or event based code for
> all these 30+ operating systems is however quite a difference and simply won't
> happen which then leads to an API that is much less portable than the current
> one. We don't even have a test suite that runs on Windows today.

And I'd not expect you or anyone to put in that much effort. All I'm
asking is that you make hiper apps portable and efficient on all the
popular operating systems without the user having to write any sockets
code. I'm happy to contribute code for Win2k+ and I'm sure people who
use the less popular operating systems will be willing to contribute
code in the future.

> Taken all this into account, I believe the proper way is then to provide an
> API that _might_ use threads and have the internal libcurl backend make the
> decision...
> I think I have an idea slowly growing in my head on an approach. I'll post
> that in a separate mail in a short while.

I think this will be tricky to do. I look forward to your ideas!

> --
> Commercial curl and libcurl Technical Support:

Cory Nelson
Received on 2005-11-10