Skip to main content

in reply to Demi Marie Obenour

@alwayscurious they have deprecated that entire thing and want users to use their "network framework" (or something like that)
in reply to daniel:// stenberg://

Ugh, so they want people to not use BSD sockets at all, and instead use the Network.framework API.

Is it safe to say that porting curl to use anything but BSD sockets would be extremely hard?

in reply to Demi Marie Obenour

@alwayscurious I have not investigated this, but yes we need sockets so if they don't use that, we would have to add some kind of transition layer for that
in reply to daniel:// stenberg://

I don’t think there is one. The recommendation is to not use the BSD sockets API at all. That would mean having libcurl call into Network.framework for everything, and use Apple-specific event loop APIs.
in reply to daniel:// stenberg://

I mean such is life on proprietary platforms. You use what the vendor provides.
in reply to Demi Marie Obenour

@alwayscurious well, then either there will be no curl there or someone would do some really weird hack to make it work...!
in reply to daniel:// stenberg://

I mean Microsoft reimplemented libcurl on top of WinHTTP for Xbox.
This entry was edited (9 months ago)
in reply to Demi Marie Obenour

@alwayscurious but really they did not. It was a half-baked job that basically did not care for the powerful parts of the API... Probably because that part exposes and works with... sockets.
in reply to daniel:// stenberg://

I don’t think sockets are the future of networking for a few reasons:

  • They mostly assume that the network stack is in the kernel, but some platforms (iOS, watchOS) are moving it into userspace.
  • They have fundamental performance limits. On Linux the most efficient networking API is io_uring, not BSD sockets.
in reply to Demi Marie Obenour

@alwayscurious perhaps not, but still today they remain as the only cross-platform networking API. It'll take a while until they are gone.