
About This Workshop
Migrating C code to Rust is rarely a single “rewrite” step. It’s a process that forces you to weave together these two very different systems. Calling conventions, memory management, tooling, and (most importantly) how you structure and test your code. These things can quickly explode in complexity if misunderstood or incorrectly managed.
We designed this workshop to give your team a coherent path from “I can write Rust” to “I can ship Rust in a C codebase” without hand-waving over these complexities.
We start from the fundamentals of C/Rust interoperability and gradually build up to a pragmatic module rewrite process, touching on performance, testing, debugging, and long-term maintainability.
By the end of the workshop, you will have a clear mental model of Rust’s FFI boundaries, know how to design FFI-friendly APIs, have written plenty of (correct) unsafe code, and have a concrete playbook to migrate real modules with confidence.
The workshop is designed for software developers working in or around C/C++ codebases. Familiarity with Rust basics is helpful, but we’ll introduce the concepts you need as we go.
Bookable for teams
Syllabus
The basics
We will cover the essentials of FFI-safe Rust:extern "C", ABI considerations,#[no_mangle], and when to userepr(C).Building and Linking
We will look at how Rust links C code in practice: the-syscrate pattern, usingbuild.rs, integrating with existing build systems, and generating bindings with bindgen — followed by how to build safe abstractions on top of unsafe bindings.Idiomatic FFI
We will translate common C idioms into idiomatic Rust: iterators instead of manual loops, return values vs out-parameters, vtables vs traits (and when to keep the C shape), strings and encodings (CStrvsstr), return codes vs errors, as well as bitflags.Testing, Benchmarks, and Sanitizers
Testing, benchmarks, sanitizers, and more. We will put our FFI code on solid foundations. We will learn how to effectively use tools like Valgrind, sanitizers, and Miri. We will discover their limitations and when to reach for which tool.
FAQ
Placeholder! What software do I need to have?
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in nisi sed eros eleifend scelerisque a eu nisl. Ut eu sollicitudin magna. Nullam varius neque ante, a pulvinar ipsum luctus id.
Placeholder! What hardware do I need to have?
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in nisi sed eros eleifend scelerisque a eu nisl. Ut eu sollicitudin magna. Nullam varius neque ante, a pulvinar ipsum luctus id.
Placeholder! How will the workshop be held?
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in nisi sed eros eleifend scelerisque a eu nisl. Ut eu sollicitudin magna. Nullam varius neque ante, a pulvinar ipsum luctus id.
Placeholder! How will the workshop be held?
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in nisi sed eros eleifend scelerisque a eu nisl. Ut eu sollicitudin magna. Nullam varius neque ante, a pulvinar ipsum luctus id.
Who we are
We are Mainmatter and we Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in nisi sed eros eleifend scelerisque a eu nisl. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in nisi sed eros eleifend scelerisque a eu nisl.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in nisi sed eros eleifend scelerisque a eu nisl.
Rust Workshops
We offer a range of workshops bookable for teams that want to grow – on-site or remote. We're also happy to prepare custom workshops – get in touch with us to talk about what curriculum fits your team best!
We are Trusted by
Bookable for teams

