Learn Rust the Dangerous Way
LRtDW is a series of articles putting Rust features in context for low-level C programmers who maybe don’t have a formal CS background — the sort of people who work on firmware, game engines, OS kernels, and the like. Basically, people like me.
I’ve added Rust to my toolbelt, and I hope to get you excited enough to do the same.
-
Why Learn Rust the Dangerous Way? Introduction and ground rules.
-
You can’t write C in just any ol’ language: translating a grungy optimized C program into grungy optimized unsafe Rust.
-
References available upon request: how Rust references are different from pointers, how they are the same, and why we care.
-
Measure what you optimize: taking a hard look at an optimization based on uninitialized memory, and converting it to safe code that’s just as fast.
-
A more perfect union: considering alternatives to pointer casting, and how to write safe wrappers for
unsafe
operations. -
Making safe things from unsafe parts: finally converting most of the program to safe code, and making sure that the
unsafe
bits are safe-ish. -
Let the compiler do the work: a bonus section that looks at how we’d write the program idiomatically in native Rust, and rely on auto-vectorization to make it fast.