Abstract
Developing SDKs for your users in multiple languages can come at a high cost - especially if you need to implement complex logic client side, but traditionally options for sharing logic across those languages have been quite limited.
Rust provides a means of defining shared logic usable from multiple languages, much like you could with C, without having to… write C. Combined with an IDL for representation of shared objects, you have a powerful means to keep your language-specific layer thin.
In this presentation I’ll explain the architecture of Temporal’s open source SDKs, and how we use it to centralize some extremely complex logic across 5 user-facing SDKs written in different languages.
Topics will include:
- What Rust helps us with
- IDL choices and serialization concerns
- Asynchronous task representations across language boundaries
- Compiling to WebAssembly to avoid native extension issues
- Staying idiomatic in the host language
- Limitations and pitfalls
Interview:
What is your session about, and why is it important for senior software developers?
My session is about how devs who need to work in multiple languages can leverage Rust as a safe, modern, foundation for shared logic. Thereby keeping their language-specific layers thinner. This is by no means a new technique, but Rust provides a much safer and more convenient alternative to C.
Why is it critical for software leaders to focus on this topic right now, as we head into 2026?
The language landscape slowly, but inexorably, continues to expand. Developers expect to be met where they are, in their language of choice. The techniques in my talk allow library developers to more efficiently expand their coverage to additional languages than they could otherwise. Additionally, relatively recent technologies like WebAssembly unlock new and powerful alternatives to shipping native code, and Rust is at the forefront of that ecosystem.
What are the common challenges developers and architects face in this area?
Communicating between the native code and the language layer is nontrivial, especially when many languages are involved. Supporting a large matrix of operating systems and architectures can be a challenge, as can packaging and shipping the native extensions (for related reasons). I'll cover some techniques for solving these problems.
What's one thing you hope attendees will implement immediately after your talk?
Immediately is a hard goal - but hopefully attendees will come away with some ideas for how they can either refactor an existing multi-language project to reduce its complexity, or a battle plan for any new project with such needs. They may also decide to familiarize themselves with Rust if they aren't already, which can be useful not only for the scenarios my talk covers, but possible usages of Rust beyond that.
What makes QCon stand out as a conference for senior software professionals?
QCon's long history stands out to me. It has a reliable reputation for delivering quality content, and avoids being overly marketing-heavy or trend-chasing. It appeals to senior engineers who are in search of genuinely deep technical content.
Speaker

Spencer Judge
Engineering Manager @Temporal Technologies, previously Senior Software Engineer @Transparent Systems, Senior Software Engineer @ Tableau Software
Spencer has worked on tools, libraries, and products for other Developers for over a decade. He has a longstanding interest in, and passion for, learning and developing in multiple languages.
Currently he leads the SDK team at Temporal, which develops libraries providing durable execution in 8 languages.
Spencer lives in Seattle and enjoys spending his free time on endurance sports and rock climbing.