[Daniel's week] November 17, 2023
Daniel Stenberg
daniel at haxx.se
Fri Nov 17 18:15:23 CET 2023
Hi friends!
## httpget 0.1
On November 11 we passed the 27th anniversary since httpget 0.1 was released
[1]. That was the tool I first found and started my ventured into HTTP
programming that would later become curl.
## mastering libcurl
I spent a significant amount of time and energy to get the slides and examples
done for the mastering libcurl session and I ran the part one on Wednesday,
now available on YouTube [2]. It ran for a little over two hours, and I
suspect the second part [3] that I will do on this coming Monday will be at
least as long.
## c-ares
Brad House has continued to polish and improve c-ares recently so I pushed
some buttons and c-ares 1.22.0 was released [6]. We saw some early bug reports
and there have been fixes so it looks like there is going to be a follow-up
patch release coming out really soon.
## 100 operating systems
I posted my old "curl has ran on these operating systems" slide on Mastodon
this week. The slide is a result of a concerned effort of me collecting
mentions and facts over the last few years. The first version I posted this
week I believe had 92 operating systems. It is curious how every time I do
this, there are people out there who can tell me about more systems that curl
has run on that were not already mentioned.
At the time of this writing, the slide now features 101 named operating
systems [4], and then I even removed two entries that were questionable if
they actually were their own unique operating systems. It seems that if we
just give it enough time and I keep posting the slide every once in a while,
we can keep adding names to it.
I will of course use that slide in presentations to show off.
## URL parsing
I decided to double-check the Ada URL parser's [5] claims that it parses URLs
7-10 times faster than libcurl. Ada is the relatively new URL parser the Node
project is using.
Turns out that this speed claim is only valid on a certain subset of CPU
architectures for which they have written magic optimizations, and that subset
does not include my current 13th gen Intel Core I7. On my machine, their
parser is typically 1.3 - 1.8 times faster. Still notable faster of course.
This said: Ada parses WHATWG URLs and libcurl parses RFC3986-URLs. They are
not necessarily treating the same input URL the same way and they don't offer
the exact same feature set, so they are not quite apples vs apples.
Also, the Ada parser is 22,000 lines of code while libcurl's is at 1,900.
I'm sure there is room for further improvement of libcurl's parser still in
terms of performance, but its established API sets some restrictions on what
can be done.
## Peer Bonus
Google runs an internal program in which their employees can suggest Open
source project/people to receive "a bonus" [7]. I received such a bonus this
week, which by my count is about the 4th time I receive this honor. Apart from
getting a signed thank you note from a "director of Google Open Source", it is
supposed to also be a monetary component. It does not say anywhere how much
and I have so far not seen any money received in my end. I don't expect the
amount to raise any eyebrows.
## Coming up
- Mastering libcurl part two on Monday
## Links
[1] = https://curl.se/docs/history.html
[2] = https://youtu.be/ZQXv5v9xocU
[3] = https://daniel.haxx.se/blog/2023/11/01/mastering-libcurl/
[4] = https://mastodon.social/@bagder/111416933480364540
[5] = https://github.com/ada-url/ada
[6] = https://c-ares.org/
[7] = https://daniel.haxx.se/blog/2023/11/11/another-google-open-source-peer-bonus/
--
/ daniel.haxx.se
More information about the daniel
mailing list