January 2024, Revisited: Rust's Enterprise Year Begins
Eric Greene June 11, 2026Our Three-Year Retrospective enters 2024. January was not a month of Rust announcements so much as the month several long-running Rust storylines visibly converged — language maturity, kernel adoption, and policy pressure — into something that made conservative engineering organizations start scheduling evaluations. If you want a single point where "Rust is interesting" tipped toward "Rust is on our roadmap" for the enterprise mainstream, the start of 2024 is a defensible pick.
async fn in traits: the last big ergonomic hole closes
The proximate cause was Rust 1.75, released December 28, 2023, which stabilized async fn in traits along with impl Trait in return position in traits. For years, this had been the most-cited gap in practical Rust: traits are how Rust does abstraction, async is how modern services do I/O, and the two did not compose without the async-trait macro crate boxing every future behind the scenes. Every team writing services hit it in week one, and every evaluation memo mentioned it.
In January 2024, you could finally write an async method in a trait definition in stable Rust and have it mean what it looked like it meant. The stabilization shipped with honest caveats — no dynamic dispatch over such traits yet, and a lint steering public library authors away until send-bounds questions settled — but for application and service code, the single most awkward conversation in "should we use Rust for backend services?" simply ended. Ecosystem momentum followed; the months after saw trait-heavy libraries begin shedding workarounds. What had required a macro crate was now just code:
trait KeyValueStore {
async fn get(&self, key: &str) -> Option<String>;
}
struct MemoryStore {
data: std::collections::HashMap<String, String>,
}
impl KeyValueStore for MemoryStore {
async fn get(&self, key: &str) -> Option<String> {
self.data.get(key).cloned()
}
}Meanwhile, in both kernels
The systems-credibility story had been compounding quietly. Linux had carried official Rust support since 6.1, and by early 2024 the scaffolding era was giving way to real drivers working through review — the kernel community arguing about Rust bindings was now a normal Tuesday rather than news. Microsoft, meanwhile, was shipping Rust inside the Windows kernel itself, having rewritten portions of the win32k graphics stack, and said so publicly.
The detail mattered less than the signal: the two most conservative, most attacked codebases in the industry had both concluded that memory-unsafe languages were a liability worth re-platforming away from, incrementally, at enormous cost. Engineering directors noticed. It is one thing for a startup to bet on Rust; it is another for the kernels underneath everything to do it.
The policy wave, about to break
The third thread was regulatory. Through late 2023, CISA, the NSA, and international partners had published joint guidance — "The Case for Memory Safe Roadmaps" in December — urging software manufacturers to publish concrete plans for moving to memory-safe languages, naming the C/C++ vulnerability classes responsible for the majority of severe CVEs in major codebases. And in January 2024, everyone tracking the space knew the White House ONCD had its own report coming imminently; it would land in February as "Back to the Building Blocks," putting the executive branch explicitly behind memory-safe languages.
For Rust, the policy push changed the conversation's register. Memory safety stopped being an engineering preference argued on Hacker News and became something appearing in procurement questionnaires and security roadmaps. Rust was not the only beneficiary — the guidance was language-agnostic on paper — but for systems work where garbage collection was off the table, it was the obvious answer, and the reports' authors knew it.
Looking back from June 2026
The convergence was real and the trajectory held. Rust's enterprise adoption through 2024 and 2025 looked exactly like January 2024 predicted: not a rewrite-everything wave, but steady colonization of the places where its guarantees pay — infrastructure, networking, security-sensitive services, and the performance-critical edges of Python and JavaScript systems. Kernel Rust kept maturing, the memory-safety policy drumbeat continued, and the post-1.75 ecosystem consolidation made backend Rust genuinely pleasant in a way that surprised people who had last evaluated it in 2021.
For teams making that move now, Rust Essentials builds the foundation — ownership, traits, error handling, and the async model whose last big gap this month closed. And because so much enterprise Rust adoption happens at the edges of existing Python systems, Rust for Python Programmers is the course we deliver most often on this topic: same destination, starting from the language your team already thinks in.