Hey, it’s Bryan from Oxide, I’m back with another FAQ Friday. Question we get from time to time is,
"Why Rust?" "I know you at the Oxide Computer Company implement a lot of what you implement in the Rust programming language. Why Rust?"
And I am as surprised as anyone! I gotta tell you, I was dyed in the wool C programmer for most of my career, and I would not have believed, my past self would not have believed, that my career would be so revolutionized by a programming language. But as I got into Rust, actually I got into it thinking if it’s not Rust, I don’t know what it’s gonna be. I’m gonna have to go back to C.
I was frustrated. I was frustrated with Node.js. I was frustrated with Go. I was looking for a language in which I could implement the systems that I wanted to implement. Operating systems kernels, lower level software, firmware, and so on.
And as I went into Rust, it was with skepticism, but Rust very quickly won me over. It’s an extraordinarily powerful language and it brings these really modern, very powerful primitives in a package where you can actually generate a tight, fast artifact. It does not have garbage collection, which is very important. The actual artifacts themselves are fast. They are suitable for an operating system kernel. And when we, we started the company, I wrote a blog entry called Falling in Love with Rust because it expressed exactly what I felt. I was falling in love with Rust.
After coming into Oxide I wrote a blog entry called Rust after the honeymoon where I reflected on all the little things that I have loved about Rust. I think one of the surprises about Oxide, when we started the company, we knew we were gonna use Rust. We knew it was gonna be important, but we didn’t wanna use it by fiat everywhere.
We wanna make sure we’re using the right tool for the job. I think one thing that’s been surprising is the scope at which we’ve used Rust. We use Rust all the way to the very, very bottom of the stack. Hubris, our microcontroller operating system, is all in Rust. That thing, the smallest thing that runs on is a Cortex-M0+. It’s got 8KB of RAM, 64KB of ROM. That’s smaller than the first computer that I had growing up in the eighties. It’s crazy small that you can get an operating system with memory protection down to that size.
Conversely, we also operate at the very tip top of the stack, making available—if you check out dropshot, progenitor, and other tools we’ve developed—to allow us to write our web services effectively in Rust.
We also use it in our own internal IT, is all in Rust. I actually find that I go to Rust instead of going to a shell script. We use Rust for just about everything at Oxide. Not by fiat, but because so frequently it is the right tool for the job. So people wonder and we have had people come back and say, "Hey, do you use Rust at Oxide?
Well, it says it right there on the tin: Oxide Computer Company. Very much a tip of the hat to Rust. And now, five years in, we can report that it has actually had more benefits than we anticipated.