You don't have to rewrite everything at once
++ Most Rust migration guides tell you to start fresh. That's not how it works in practice. Real + codebases are large, deployed, and depended on. You need a strategy that lets C and Rust + coexist while you migrate piece by piece. +
++ That's what this course teaches. You'll learn how to bridge C and Rust through FFI, expose + clean Rust APIs to existing C consumers, and progressively replace C with safe, idiomatic Rust + — without breaking anything along the way. +
+Free course
+C to Rust Migration
++ Bridge C and Rust through FFI, expose safe APIs to existing C consumers, and migrate + incrementally — without breaking what's already in production. +
+ {{ + btnPrimary({ + "label": "Start the course", + "url": "https://rust-exercises.com/" + }, "white", "mt-2") + }} +One concept at a time
++ The course follows the same exercise-driven approach as our other Mainmatter courses. Each + chapter introduces a concept, explains the reasoning behind it, and puts you to work + immediately. +
++ You'll start from the fundamentals — how languages communicate at the binary level — and work + your way up to writing production-quality FFI APIs with proper documentation, ownership + semantics, and error handling. +
+No prior Rust FFI experience required. Basic familiarity with C and Rust is assumed.
+Community
+Meet other Rust enthusiasts at EuroRust
++ Mainmatter organizes EuroRust, a two-day conference covering Rust patterns, systems + programming, CLI tooling, servers, WebAssembly, and embedded systems. +
+ {{ + btnPrimary({ + "label": "Visit EuroRust", + "url": "https://eurorust.eu/" + }, "purple", "mt-2") + }} +You Might Like...
+-
+
-
+ ++++
+ ++A deep-dive into our work for Redis at EuroRust 2025
++ {% + set link = { + "label": 'Watch on YouTube', + "url": 'https://youtube.com/watch?v=XklFGy3aUX4' + } + %} + {{ btnSecondary( link, 'link-purple' ) }} ++
+ -
+ ++++
+ +++ Blog post: eserde: Don't stop at the first deserialization error +
++ {% + set link = { + "label": 'Read Blog Post', + "url": '/blog/2025/02/13/eserde/' + } + %} + {{ btnSecondary( link, 'link-purple' ) }} ++
+ -
+ ++++
+ ++The Rust Adoption Handbook
++ {% + set link = { + "label": 'Download Handbook', + "url": '/rust-adoption-handbook/' + } + %} + {{ btnSecondary( link, 'link-purple' ) }} ++
+