Josh talks to Sylvestre Ledru about the Rust coreutils project. We’ve been using GNU coreutils for decades now, and the goal of Rust coreutils is to rewrite these utilities in Rust. The primary reason isn’t security, it’s to modernize the code and attract new contributors. Sylvestre discusses with quite pleasant relationship with the GNU coreutils developers, some of the challenges in the project. What Ubuntu using this by default meant, and also gives us some things to watch for in the future. It’s a super fun discussion about why Rust is not only awesome, but also the future.

This episode is also available as a podcast, search for “Open Source Security” on your favorite podcast player.

Episode Transcript

Josh Bressers (00:00) Today, Open Source Security is talking to Sylvestre Ledru Director of Engineering at Mozilla on Firefox, and the BFDL of Rust Core Utils. I asked Sylvestre to come talk to us about the Rust Core Utils project, because it is, like, I think it’s super fascinating, and I can’t wait to get into this. So Sylvestre, why don’t you tell us a little bit about yourself and what you’re working on. It will kind of go from there.

Sylvestre (00:20) Sure, first hello. So what happened is I’m a director of engineering at Mozilla and I had the privilege to meet many of the people who created Rust. And then I think you remember we had something called COVID that happened five years ago and I was bored and my wife started watching the Big Bang Theory and another show, know, Buffy the Vampire Slayer. So it’s like 200 hours of content.

how am I going to use the time. So I was like, I need to learn Rust because I met so many of the amazing people who created Rust and I always wanted to learn that. my role at Mozilla is to manage people so I’m not supposed to write code. So I started thinking, what should I do? Where can I have an impact? And back then I played with Clang, rebuilding the Debian archive a long time ago. So I love doing those weird, let’s rewrite something or let’s update something.

for the sake of learning and I like, maybe I should try to learn the coreutiles how it works. And I found a project that was abandoned and I restarted it. And then fast forward five years later, we are now shipping in Ubuntu by default.

Josh Bressers (01:34) Which is pretty cool. Okay, so let’s just start at the beginning then. like, first of all, what are, what is coreutiles and then what is rust coreutiles and how are those related?

Sylvestre (01:43) Sure. let’s think about the history of Unix. So the first version of Unix was released in 70 and in assembly and then the folks, they created C and they rewrote the coreutils that they created in 72 in C. And if you look at the source code of what they wrote, it’s still very similar to what we have right now. if you look at the chown command, for example, it’s still the 666 or 777, you know, how do you manage permission? is exactly how they designed it.

more than 50 years ago. And when you think about it, it’s crazy how smart they were back then. So they created a bunch of commands. So the main one were, and still are, MV, LS, CP, and then you touch permissions, so chown chmod and then you have some commands that nobody uses, like PR. I think it’s something for printing. You have some command like TAC, and you have a lot of commands, about 100 commands. So everybody uses them.

It ships by default on every unique system, including Android. I haven’t tried on iOS, but you have probably some implementation of those with various flavor. And to continue this story, listen to the new project we implemented those tools more than 20 years ago. And it is what has been driving the Linux ecosystem for those 20 years, 25, maybe 30.

Josh Bressers (03:06) Yeah, and when we hear the people with the GNU slash Linux, like that’s the GNU part of GNU slash Linux, right?

Sylvestre (03:13) Some of that, we have also other parts. Obviously the Linux kernel is one of the GPL things, it’s not part of the GNU Project, obviously, but you have also some other fancy commands like, hook, grep, sed, those commands. They are not part of the corricules for legacy reason, but they are maintained by the same persons in 2026 now.

Josh Bressers (03:36) Sure, Okay. All right. So I’m also going to add right now for anyone listening that Sylvestre sent me his slides from FOSDEM shortly before we recorded. So this will come out. It’s going to be a little bit, but we are speaking very shortly after FOSDEM and I’ll put a link to the slides in the show notes. And I told them before we hit record, like every question I had is covered in these slides, I think. So by all means, like go take a peek at them if you’re listening, it’s fabulous content, but okay. So let’s kind of start at the very beginning of just

Why, why do you want to do this? Right? I know there’s the whole like, memory safety rust, you know, it doesn’t have buffer overflows, but there’s more than that. And I love this answer. So I think it’s great.

Sylvestre (04:18) Yeah.

So first I’d like to say that it is not about security. Of course, it helps when you are using a memory-safe language. But the people who have been doing the new coreutils for the last 20 years are amazing. They are amazing developers. And when you look at the number of CVEs I think they are one per year or something like that. So they are excellent programmers. However, what I see is that less and less people want to learn C. I feel that when I was

young at university. learned Cobol and Fortran and I think C is going to end up in the same bucket at some point and maybe it already is and new generations they want to learn cool stuff like Kotlin, Swift, Go or Rust and I think we as a community we need to start thinking about those things and I have seen also Linus for the Linux kernel using the same argument for the Linux kernel why he wants to

get rust inside the Linux kernel is to get younger folks excited and not work with people with a grey hair like me. So I think it’s also quite exciting because it’s a way more modern language.

Josh Bressers (05:33) Yeah, yeah, I mean for sure, whenever someone young asks me about what language to learn, C is never on that list.

Sylvestre (05:38) And I

guess C++ is the same, it’s not on that list either. They are way too hard. Yeah, one of the things that I do like with Rust is, and I think we don’t say that enough in the Rust community, and I see that with Firefox at Mozilla, that as a reviewer, when you see Rust code, you are way less worried about…

Josh Bressers (05:42) Yeah, yeah, right, right, exactly. Yep, yep.

Sylvestre (06:02) the potential security issue because when you Rust code, you don’t have to worry about the corner cases or you don’t have to worry about use after free. So review are significantly easier and safer in Rust than when you are reviewing C code.

Josh Bressers (06:20) Yeah, a hundred percent. Yes. Yes. Okay. So let’s kind of fast forward in your story a little bit. And you mentioned that Ubuntu is now shipping coreutiles by, well, Rust coreutiles I should specify by default. And your slide deck has some of the choice quotes from the socials when this happened. And I don’t know how to ask this question reasonably, but I feel like

Sylvestre (06:33) Yep.

Josh Bressers (06:49) When Ubuntu put Rust coreutiles in by default, it was like a bunch of conspiracy theory people like crawled out of the woodwork making ridiculous accusations. Now I have not noticed a ton of those accusations recently. I mean, you’re obviously more connected than I am, but I do feel like it’s died down a little bit, I’m just, give us your thoughts and some of your, maybe some examples of just the ridiculous things that came about from this.

Sylvestre (07:15) Yeah, so what I did that presentation yesterday at FOSDEM some people after the talk came to me and one of the words that people used is that we were accused of being techno-fascist. Please don’t ask me what it means, I have no idea. But I found that so funny. ⁓ Some people think that we are part of a cabal and we are trying to replace everything with rust and we are part of a cult or something.

Josh Bressers (07:31) Ridiculous.

I’m fine with that, Cabal.

Sylvestre (07:44) Yeah, indeed. ⁓ So it is always fascinating to see when people on Hacker News or Reddit or Phronix how they perceive your work. And I see that with Debian and even more with Firefox because most of the time people, don’t have the subtitle or they don’t have the full picture or the context. So they are trying to connect things when there is nothing to connect. For example.

We have not been coordinating with the Linux kernel on that project. I have been following what they have been doing. I know some of the folks, but we never had any meeting to say, let’s rewrite everything in Rust. We are doing it because we think that it is a right thing for the industry and for the future of Linux and the ecosystem as a whole. But we don’t have any secret plan.

Josh Bressers (08:30) And look, if you did have a meeting, in no universe would that be a secret, right? Like if anything, both, both groups would want to brag about working together. Yeah. ⁓

Sylvestre (08:36) yeah, for sure. ⁓ Yeah, exactly. And some people

also, you know how some people feel very passionate about GPL against BSD or MIT licenses. And some people were very emotional about it. They were thinking that Canonical was trying to… ⁓

replace all the GPL by MIT because they have some secret plan to make Ubuntu proprietary. But it was never the case. I met with the canonical folks and we never talked about license. They perfectly understand the differences between GPL and MIT and it was never a discussion because as long as it is open source, they don’t really care.

Josh Bressers (09:22) Right, right. Well, and look, the BSD coreutiles are already BSD licensed. So, I mean, obviously that’s what Apple used in, in OSX. You know, we, we don’t need GNU coreutiles to somehow, you know, be some poster child solving a problem. Like there are alternatives.

Sylvestre (09:42) I never remember which one has which license but you know have a Toybox and the other one I never remember the name but one of them is a GPL the other one is a BSD or MIT it’s way more permissive so yeah you have other alternatives

Josh Bressers (09:54) Yeah. Yeah.

Right. Right. Well, I mean, look, how many proprietary systems have been built on top of GNU coreutiles to this day? Right. I mean, it’s, it’s a ton of stuff. It’s, we have cracked this code. okay. Okay. So I want to ask about kind of the, the functionality, or I guess the process is you put GNU coreutiles, well, not you specifically, but Ubuntu.

Sylvestre (10:03) Yep. Yep.

Josh Bressers (10:22) put, I’m sorry, I’m sorry, Rust coreutiles. I’m going to screw this up more than once. I’m sure for the rest of this conversation. But Rust coreutiles as a default in Ubuntu. And I know there was some wailing and gnashing of teeth. There were people who said, you know, certain scripts failed. And you had a slide about this, about all the corner cases somewhere, about how there, there are undocumented corner cases in like GNU coreutiles that people were maybe unknowingly even using that. I don’t know. What have you done in that instance? Have you patched?

Rust coreutiles to accept the corner cases or you’ve told people like fix your code.

Sylvestre (10:55) Good question. So we did everything in that space. basically, our goal is to be ⁓ bug compatible. So when you think about a command line, you have three things. You have the stdout so the regular output. So when you do ls, for example, and you get the list of file, is redirecting this output to stdout. You have stderr So when you are doing something and

Josh Bressers (10:59) Nice.

Okay.

Sylvestre (11:23) and the program triggers an error, it’s going to go in a different output, so stderr and then you have the exit code. So you have those three things that you have to follow. So the stdout because people are piping the output, so reusing, for example, the output of LS, you need to make sure that you are 100 % compatible. For the error messages, you have…

you can do more in that case. for example, when you use the GNU corritils and you are, you know, the jokes that I like to make with my Australian friends is dash dash color, you know, with or without a U. And you have plenty of those example between Canada and the US also. So GNU is going to trigger an error. And for us in in the rust implementation, we are going to tell you, maybe you, you meant without a U for color, for example. So you have the luxury to do that. And the exit code you have.

to follow exactly what upstream is doing because you realize. So sometimes you have some weird exit code depending on the program. So what we have done is we run the upstream test suite. So it’s about 600 tests that we run in the CI. So we use, it’s a mix of Shell and PerlScript from the GNU project. So we rebuild our implementation and then we test against upstream. And in many cases, they are not covering everything.

So for example, ⁓ I learned recently that if you put a parenthesis in the date command with some flag, a parenthesis is a comment. And I didn’t know that, so I thought that was an error. So I reported that upstream. And they said, no, no, it’s a behavior. But they didn’t have tests. So I added a test upstream. And many of us in the Rust ⁓ project, are contributing upstream to the test suite. So I think if you look at the next release that is going to be published in a few days, you will see that we are part of the top five contributor.

to the GNU project because we are contributing to the test suite. And I, yeah.

Josh Bressers (13:16) Nice. That’s pretty cool. And I was just going to say, I’m

looking at your slide. say you have 95 % of the GNU test passing. 96. Nice. That’s cool though. I mean, that’s impressive. That is really good, right?

Sylvestre (13:24) 96 this morning. ⁓

One of the last ones was PR to come back to one of comments that I was telling at the beginning that nobody uses. PR for example is not well covered. But nobody uses that comment but we still have people contributing to that one because we want to be at 100 % compatible.

Josh Bressers (13:53) For sure. mean, that’s the goal, right? Okay, so tell me about the relationship between GNU coreutils then, because you have this in your slides you just mentioned. You’re one of the top contributors to that project. And this is not an adversarial relationship, it sounds like. You are all friends. But at the same time, if you succeed their project, I mean, it’ll never go away, but it’s definitely going to become less impactful maybe than it is today. And I’m curious, like…

Sylvestre (14:19) Yeah, and.

Josh Bressers (14:21) What does that mean for you and them and what does those discussions look like?

Sylvestre (14:26) Well, they contribute also to our projects, so sometimes they open bugs. ⁓ Sometimes they are guiding us saying, what you are doing is wrong, you haven’t considered that case. So they are very involved in the GitHub project, so they reply to issue. So it has been very friendly. ⁓ At several occasions, I have seen some weird comments from the community towards them, and I reach out to them saying, please know that I’m friend with you and it doesn’t represent my opinion.

So at a few occasions, we send emails just to emphasize that it is not adversarial, it’s really how we collaborate. I think this is at the same way, that it’s a positive plus for the future and they realize that because we are contributing to upstream to the project, it is really to improve the state of the art of tech and not to make things worse. ⁓

And I know that they have seen also some bugs in our implementation and they also improved their code base. in the next upstream release, you are going to see some changes in one of the weird comments, so checksum And they have made changes because we told them, well, the dash dash text argument, does it make sense on Linux? It was a Windows argument. So they are deprecating some argument because of our work. So it’s very friendly.

Josh Bressers (15:50) Nice. And checksum was the one that was 17 times slower, right? Was the complaint at the time? Right, right. Okay. But no, I want to ask about that though. So I feel like when the first Ubuntu rollout happened, there were lots of complaints about bugs. And I feel like I haven’t really heard anything lately. Is that because do you think the bugs have been fixed or have the noisy people just moved on to complaining about something else? Or I’m curious, like, what is the state of this? Are you in a good place now in Ubuntu or is there still work to do?

Sylvestre (15:55) yeah, yeah exactly.

Well, we still have work to do and we will have work to do for the next few years still because you will have some forever probably. ⁓ So you have weird corner cases at times. So for example, I have seen a bug recently that in Ethiopia they have a different calendar. They are not in 2026. It’s the same for Iran and in Thailand. And we didn’t have that implemented in the date command, for example. So we had to implement that.

Josh Bressers (16:25) FOREVER.

Sylvestre (16:46) So I see those kinds of weird cases, like if you use that argument plus that argument and then it is an hard link and you have a symlink it is going to behave slightly differently. So you have all those kind of cases that you have to fix. We had one bug that was significant after the first release. was date-r. So it was test-r, not date-r. We were not supporting the argument correctly. And that broke the…

the unattended ⁓ distro upgrade in the background. So we fixed that one quickly. But at some point you have to take some risks and you cannot test everything. So you have to rely on the community at some point to make the change.

Josh Bressers (17:33) Yeah, oh yeah, for sure. And, and even, even the GNU coreutiles, I’m sure have weird bugs, right? With insane corner cases. I mean, it’s just, it’s the nature of the beast. You know, why doesn’t my shell script from 1975 work anymore?

Sylvestre (17:40) yeah.

Yep. ⁓

Yeah,

yeah, yeah. Well, if you look at the release notes, they always have a regression. But at the end, if you have a regression, that means that you are making changes, that means that your project is alive. And if you like to say that if you don’t have any bugs, that probably means that you don’t have any user at the end.

Josh Bressers (18:06) Yes, I’ll agree with that. Well, and I will say you have a graph here. I just had it in my web browser freaked out. Your community contributions is looking really good in 2025. Like that’s really cool because that’s the dream, right? Like you don’t want this project to be Sylvestre implementing tools. You want it to be other people helping at the same time.

Sylvestre (18:26) Yeah, and I’m lucky we have a lot of maintainers who are terrific reviewers, so I’m not alone. And I’m glad that I’m not alone because I would burn out otherwise. And we have a strong community with amazing reviewers and a lot of great developers. So now what I’d like to do, someone at FOSDEM approached me yesterday and asked me, do you know the age of the people? And that person volunteered to do a study.

Because I’d like to know if they are my age or if they are 16, 17 or 20. I think it would be a very interesting outcome to know if they are kids or old guys.

Josh Bressers (19:02) No, that would, that’s fascinating because I know I talked to, man, I can’t remember who it was now. was on the podcast a long time ago. Um, was one of the Tidelift folks where they did this study. looked at ages of open source developers and it was definitely trending, you know, more towards the gray beard space. And so I will be interested to see if, you know, something like Ross does attract maybe a younger crowd because at the same time, like we, you know, we mentioned, I wouldn’t, I don’t remember if we mentioned this in a recording yet.

But like, would not suggest a young person learn C today, but I would definitely suggest they learn Rust. And Rust is fun. Like, so this is one of the things, you know, I’ve talked to Thomas dePierre many, many times on this show at this point. And like, that’s one of the things he keeps telling me all the time is like, Rust isn’t just about like security or the fact that the compiler gives you like good error messages. It’s just, it’s fun to write in because it just the way it works. And I agree with that.

Sylvestre (19:34) No. No.

Josh Bressers (19:57) right. And it’s something that obviously attracts people because it’s, it’s, it’s not just you’re contributing, but you’re having fun while you’re doing it, which is cool.

Sylvestre (20:04) Yeah, and one of the things when I need to sell Rust to the old guard of the free software world is I’m asking them to think about like, try to write a software, a code that is going to link again, libxml for example, and try to make it work on Windows, Linux and Mac and Android. And if you do that with CMake or something else, you are going to cry and you are going to waste probably one or two days of your life doing it.

And with Rust, it’s going to take 20 seconds. You do cargo init and cargo add, and that’s it. And it’s going to work on those platforms. So the ecosystem is amazing for that.

Josh Bressers (20:32) at least.

Yes.

Exactly. I mean, I, you say this, I had to build some, and this has been 20 plus years ago. It was using, wasn’t libXML though. It was, I can’t remember the name of the XML parser from way back in those days, but yes, we, yes, it was libexpat That’s right. And yeah, like I spent, I bet a week getting the configure scripts to work right. So it would build, and that wasn’t even on windows. That was just across various Linux distributions and BSD.

Sylvestre (20:56) libexpat? libexpat That one? Yeah.

Josh Bressers (21:13) And it was, my goodness, like, I still think about that.

Sylvestre (21:14) we all have PTSD. We

all have PTSD from that.

Josh Bressers (21:18) It was terrible.

It’s like the tools were awful and they were so hard to use and just nothing ever worked right. And you’d run into like the weirdest bugs. Cause it was like, you know, make it, might work in X86, but then you’d switch over to, you know, some Itanium architecture or a sparc machine or whatever. And it would just stop working in weird ways for what it seemed like no reason. Oh my gah Anyway, anyway. I, yes, we could probably talk for hours about the stupid things we had to deal with. Cause

Sylvestre (21:40) All guys talking. ⁓

Josh Bressers (21:47) I mean, my story was actually, you I know you mentioned you run Debian and I used to work for a company called Progeny Linux Systems, which is Ian Murdock who created Debian and created this company. And we were doing work on the Itanium architecture back when they were trying to make Itanium a thing and it was porting things to Itanium and it was just, oh my goodness, nothing worked. Anyway. Okay. So we’re, we’re probably run us out of time telling stories. So, so, so I wanted to also ask you about like the architecture of this thing. So when we think about like GNU coreutiles, there’s like,

a million C files that all compile into one little binary. But you architected the Rust coreutiles more like how Busybox works, where you have like one binary that then depending upon what its name is, it acts like that tool, yes?

Sylvestre (22:33) This is the case for Ubuntu because of the size of the final binary. If you build every program, the Rust is quite heavy and we don’t have, well, we have support for dynamic library in Rust, but it sucks, nobody uses it for real. ⁓ so you ship a lot of things around the binary. So the final size of the Ubuntu package would be too big. So that is the trick that we are using. But at the end, you can build multiple binaries. So for example, you could build ⁓

Josh Bressers (22:47) Yeah, yeah.

Sylvestre (23:03) a Linux distro with only the core commands like cp mv and you can, I will again talk about PR. You could build a Linux distro without that command that nobody uses, but everybody got that on Linux currently. So if you run a Linux, you will have PR. So yeah. ⁓ yeah, probably. Yeah. We should update the standard then. But yeah, it is a trick that we use to decrease the size.

Josh Bressers (23:20) It’s probably in some POSIX standards, so you have to ship it, right? Yeah, yeah.

Okay. Let me, let me try to unwind that for anyone who doesn’t understand what you just talked about. So when, no, that’s okay. This is complicated and this one is tough to understand. So when you build a Rust binary, Rust includes like normally, like if you’re building a thing on, on Linux, let’s say there’s like GLibc and there’s, know, you talk about lib XML and there’s like all these different libraries and the way, I mean, Go does this too. And the way Rust works is

Sylvestre (23:36) Sorry.

Josh Bressers (23:58) they compile everything together into one giant fat binary. And so it’s not calling out to another library. So obviously when you have a tool like GNU CoreUtils, there can be a shared library that every single application uses. But in the Rust universe, every application would compile that code into its binary. So logically it would grow in size. Now, Rust binaries, when you include like the Rust standard library, are pretty big, generally speaking. I mean, it’s often like you could compile a seek, seek li, ⁓

like probably GNU core, you tell us, bet most of those binaries are probably around like 10 to 30 kilobytes is my, my guess. I don’t know. I’m making that up so I could be wildly wrong, but they’re using a ton of stat of shared libraries. When you build a Rust binary, like a hello world and Rust is like a megabyte. It’s, really big, but it’s because it’s including all of the normally shared library crap in the thing. So what you’re doing is instead of having like 30 individual binaries.

Sylvestre (24:37) It depends on which one.

Josh Bressers (24:58) that all would be like, let’s say a megabyte in size, you’re building one binary that then includes like one copy of the standard library and whatever other dependencies you have. And then you’re doing what BusyBox does where the first thing your executable does is just says like, what is the command I think I am, right? Like I’m PS or MV or whatever. And then I say, okay, I need to go run this code over here. And so now you have all these, these executables functionally sharing

you know, standard library by just putting them all in the same binary. All right. Did I miss anything? Do you think I got it right?

Sylvestre (25:32) Exactly. No, it’s perfect.

Yeah, exactly. We are in a security podcast, so I will talk about security quickly. In Debian, it’s tricky because if you have one of the crates, so a crate is a library in Rust, that it is at the bottom of the dependency tree. That means that if you want to, if we identify a security issue at the bottom of the tree, that means that we have to rebuild all the binaries that depends on it. So in Debian, we have a…

Josh Bressers (25:40) Yes, for sure.

Sylvestre (26:00) We are starting to have a lot of binaries and the same with Ubuntu and if you have an issue that means that you have to rebuild everyone. Fortunately the language is super safe so we don’t have that many CVE in the Rust program.

Josh Bressers (26:14) That’s a point actually. hadn’t even thought of that angle of doing all those rebuilds at the same time. like Rust is not known for being a particularly fast compiler. So I don’t know. I mean, you tell me like when you’re doing your development, like what is a clean checkout to build take for Rust coreutiles?

Sylvestre (26:32) It’s probably one or two minutes, but the test suite, yeah, it’s not that long when I have a powerful machine and then you have plenty of caches so you don’t have to rebuild everything. You have a very clean dependency tree so you are going to rebuild only what you need. And one of the cool things that we have is running the test suite of everything. It takes like one or two minutes depending on your hardware and the new implementation is longer. It’s just, you know.

Josh Bressers (26:36) that’s nothing.

Sure, sure.

Wow.

Sylvestre (26:59) because of the way Cargo works and you are using the same namespace and so on. Yeah, makes your life easier when you want to debug.

Josh Bressers (27:05) I mean, that’s impressive though. back in the day, mean, back

in the day, I would have given anything for one or two minute compile times. Like, ⁓ wow. Although that also made it much easier to take coffee breaks. I’ll admit it’s like, ⁓ I’ve got 15 minutes now. What am I going to do?

Sylvestre (27:13) Yeah, yeah, yeah.

Yeah

Well, build

fire for extraction.

Josh Bressers (27:25) my goodness. So don’t laugh. ⁓

when I worked at Red Hat, I did a lot. did a lot of security work with Firefox. I would help Mozilla with CVEs and advisories and things like that. And I remember, I think it was when we had to build Firefox on S390, it literally took 24 hours. And so if we made any mistakes in the patch, it would, we threw away like 16 hours of our life. And when you’re trying to get a build out, you know, like yesterday,

That was, my goodness, I have stories. I have so many stories about building Firefox at Red Hat. was nuts. And it was terrible, because, I mean, all the other architectures, I mean, actually, I don’t know what it takes these days, but back then it was like, I don’t know, a couple hours. So it was a long, but it wasn’t that bad. man.

Sylvestre (27:57) Yeah.

Well now

you can build it in 5 minutes, 10 minutes. With enough cash it takes 1 minute. It’s a subject for another episode but Mozilla, I’m part of Mozilla as we discussed earlier, we invested a lot of money to make it easy and fast to build.

Josh Bressers (28:16) wow.

Nice.

man, yeah, yeah, for sure, for sure. Okay, okay Sylvestre, we’re coming to the end here. And so I guess if you wanted to tell the listeners, like what are some things you’d like them to know? If they want to get involved, how can they do that? Like what are some next steps? know, just any of the floor is yours. Tell us what you want us to know.

Sylvestre (28:51) Well, we as a community, we are trying to do that to replicate that success with other programs. Last year at FOSDEM someone came to me and said, I want to implement SED in Rust. And we now have the implementation of SED. It’s not fully compliant. But if someone wants to implement Awk or Grep under the Uutils umbrella, it’s a nice way to learn Rust. It’s not that hard.

Josh Bressers (29:04) Thanks.

Sylvestre (29:16) You might have some scars at the end because of the borrow checker and the weird things that Rust ⁓ makes you do, but it’s very nice to learn that new language. And even I was discussing with some friends who are learning Rust right now, some C++ ⁓ hackers who are working on LLVM and Clang. They were telling me that learning Rust made them also better C++ developers because of some of the way Rust is forcing you to work. It’s very good.

You are a better C++ developer after you write some Rust code. We have plenty of good first bugs. It’s easy and fun.

Josh Bressers (29:49) Nice.

Awesome. So if anyone wants to get involved with Rust coreutiles, where should they go? What should they do?

Sylvestre (29:59) The uutils project on github and then you have also projects that are listed there. I regularly open good first bug and we have also some good first bug for Rust in Firefox. So if people want to hack on a bigger project, they can try that one.

Josh Bressers (30:12) Nice. Awesome. I will, and I’ll put links

in the show notes for anyone interested. And I guess let’s end it then with kind of what, what should we look for in 2026? Like what are the, what are the things that you’re excited about in Rust Core Utils?

Sylvestre (30:30) Well, in Rust Corridors, to ship in the next LTS of Ubuntu, that’s going to be… Ah yeah, yeah, yeah, it’s scary because we are going to have way more users. I’m sure that we are going to have plenty of bug reports and people writing weird shit on Reddit. It’s going to be fun. But we have the capability to fix those bugs quickly. And I’m waiting to see Rust enabled by default in the Linux kernel.

Josh Bressers (30:36) that’ll be big, yeah.

You know it.

Sylvestre (31:00) in Dejan and Ubuntu and Red Hat as well at some point. Fedora first obviously, but it’s going to be a great step.

Josh Bressers (31:04) Yeah, yeah.

Yeah, yeah, that’s going to

be exciting. Like, ⁓ how cool. I love the success I keep seeing around Rust because it’s such a cool language and it’s so much fun. And obviously it’s a security nerd. I love that angle as well, but just the, the, fantastic fun that it brings to programming, I think. Okay. All right. Sylvestre I appreciate the time. This has been a treat.

Sylvestre (31:25) Yeah.

I

My pleasure.

Josh Bressers (31:31) And I can’t wait to have you back to tell us all about some new and exciting things around Russ coreutils So thank you so much.

Sylvestre (31:36) Yeah.

Thank you.