Skip to main content


Allow me to introduce #trurl 0.10: https://github.com/curl/trurl/releases/tag/trurl-0.10

Your favorite URL parser and manipulation tool.

daniel:// stenberg:// reshared this.

in reply to daniel:// stenberg://

if you ever need to borrow fuckey Unicode domains for testing, hit me up; consider that a long-term standing offer.
in reply to daniel:// stenberg://

I promise I'm not trolling. This seems like a new project that handles something that humans (or at least humans not named Daniel Stenberg) get wrong a lot: URL parsing. Did you consider Go or Rust for this project?

For context, in my professional capacity I end up having a lot of conversations about moving to memory-safe languages, and there seems to be an assumption that it will be intuitively obvious when a new project shouldn't be started in C - an assumption that I think is probably wrong. I think based on my personal biases, I probably would have identified this as a likely candidate. Since you wrote it in C and Perl, and since you literally wrote some of the duct tape (or do you prefer super glue) that holds the internet together, I'm hoping to get your thoughts. I'm sure you get a lot of "just write Curl in Rust over a long weekend" type of messaging, and I really hope this doesn't come across that way.

CC: @joshbressers and @kurtseifried because they're cool

in reply to Camdon

@camdoncady @joshbressers please go read https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ and then think about the context of @bagder having copious knowledge and access to expertise for url related shenanigans and C. Implementing this in rust is extremely non trivial and would likely result in a lot of fun new problems.

In other words, sometimes you gotta work with the tools that you’re most experienced with. Also, in the hands of an expert, even dangerous tools can be reasonably safe and effective. There’s a cost to making people switch their tools and learn new things, and they may or may not be a payoff that makes it worthwhile. #Economics.

in reply to kurtseifried (he/him)

@kurtseifried @camdoncady @joshbressers I think you nailed it exactly.

I'm a rust rookie, I couldn't do this in rust without spending enormous amounts of time. I did not want to do that - I just wanted to crank out a useful tool and I know my way around C. Also, the tool uses the libcurl URL API (as a fundamental part) so it would rely on that (C code) anyway.

in reply to kurtseifried (he/him)

@kurtseifried @camdoncady @joshbressers @gregkh just listened. Good content. Sensible stuff. The Linux kerrnel is at such a different scale than we are in curl, but I can still relate.Thanks guys!
in reply to daniel:// stenberg://

@camdoncady @joshbressers @gregkh I wonder now what the most widely run code is by # of devices, I feel like Linux Kernel-based systems would almost always have a copy of curl installed?
in reply to kurtseifried (he/him)

@kurtseifried @camdoncady @joshbressers @gregkh at least a very large portion of them, yes. And curl runs on about 99 other operating systems as well... perhaps in device volume, iOS and ipodOS are the most important ones as they are in the billions.
in reply to Camdon

@camdoncady @joshbressers @kurtseifried you are definitely trolling and this type of “evangelism” isn’t helpful for convincing people to use rust
in reply to Ariadne Conill 🐰

@ariadne @camdoncady @kurtseifried

Is not a troll, it’s a very real question and I think the answer from Kurt and Daniel were very reasonable and informative

in reply to Josh Bressers

@joshbressers @ariadne @camdoncady@infosec.exchange @bagder @kurtseifried you can answer troll questions with reasonable answers, that doesn't make the question reasonable.

Asking someone announcing the release of a piece of software to reconsider their design decisions without knowing a thing about the project isn't reasonable.

in reply to Kevin Granade

@kevingranade @joshbressers @kurtseifried i have to agree here. the questioner first acknowledges that daniel is a domain expert in regard to URL handling, and then implies that he might make a mistake.

yes, sure, even an expert might make a mistake (nobody is perfect), but the implication followed up by the suggestion to use Go to prevent mistakes is not a legitimate argument, and there have been mistakes made in Rust URL parsers before, so clearly Rust does not give a magical protection against mistakes either.

this makes the inescapable conclusion that the questioner is trolling.

in reply to Ariadne Conill 🐰

@kevingranade @joshbressers @kurtseifried (there is also the implication that URL parsing is some error prone operation when in reality URLs have a stable grammar, and it is pretty much trivial for an experienced C developer to write safe URL parsing routines)
in reply to Ariadne Conill 🐰

@ariadne @kevingranade @joshbressers this is a good example of you are an expert in something for example, you know that you or else have a stable grammar and are not magic. But the fact that you know that they actually have a grammar, let alone a stable grammar put you in zero point a lot of zeros one percent of the population of technologists. I would point out that Google took URLs away from the address bar because nobody knew what they were and they were just confusing.

How many components does a URL have (no cheating and checking Google):

  • 1-3 (0%, 0 votes)
  • 3-7 (23%, 3 votes)
  • 8-10 (53%, 7 votes)
  • 11 or more (7%, 1 vote)
  • I just want to see the results (15%, 2 votes)
13 voters. Poll end: 2 months ago

in reply to kurtseifried (he/him)

@ariadne @kevingranade @joshbressers So best case scenario 54% of people on mastodon who see my toots (which I think we'll all agree is a pretty skewed population to sample) know a URL has 10 parts. I bet none of us can name them all.